<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>群晖 &#8211; 清和&#039;s blog</title>
	<atom:link href="https://www.qingh.xyz/category/%E7%9E%8E%E6%8A%98%E8%85%BE/%E7%BE%A4%E6%99%96/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.qingh.xyz</link>
	<description></description>
	<lastBuildDate>Fri, 26 Sep 2025 06:09:58 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.qingh.xyz/wp-content/uploads/2025/08/cropped-favicon-32x32.jpg</url>
	<title>群晖 &#8211; 清和&#039;s blog</title>
	<link>https://www.qingh.xyz</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>群晖IPTV SQL注入(时间盲注)漏洞</title>
		<link>https://www.qingh.xyz/synology-iptv-sqli/</link>
					<comments>https://www.qingh.xyz/synology-iptv-sqli/#respond</comments>
		
		<dc:creator><![CDATA[清和]]></dc:creator>
		<pubDate>Thu, 28 Aug 2025 03:35:05 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[SQL注入]]></category>
		<category><![CDATA[漏洞]]></category>
		<category><![CDATA[网络安全]]></category>
		<category><![CDATA[群晖]]></category>
		<category><![CDATA[iptv]]></category>
		<category><![CDATA[矿神IPTV]]></category>
		<guid isPermaLink="false">https://www.qingh.xyz/?p=95</guid>

					<description><![CDATA[简介 &#8195;&#8195;在电视家挂掉后，思来想去还是决定自建一套IPTV管理系统，经过一顿查找，终于确定 [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>简介</h2>
<p>&emsp;&emsp;在电视家挂掉后，思来想去还是决定自建一套IPTV管理系统，经过一顿查找，终于确定把<code>群晖IPTV</code>作为替代。但是这玩意只能在群晖里用，于是把这玩意提取出来，整个docker；在调试时发现不少位置存在SQL注入。</p>
<h2>环境安装</h2>
<h3>群晖</h3>
<ul>
<li>添加矿神的三方源: <a href="https://spk7.imnks.com/" title="https://spk7.imnks.com/">https://spk7.imnks.com/</a></li>
<li>找到<code>群晖iptv管理系统</code>安装，按照提示安装前置源。</li>
</ul>
<h3>其他设备</h3>
<pre><code>docker volume create iptv
docker pull v1st233/iptv:0.9
docker run -d --name iptv_server \
    -p &lt;port&gt;:80 \
    -v iptv:/var/lib/mysql \
    -e PROTOCOL=http&lt;or https&gt; \
    -e IPTV_SER_ADDR=&lt;your_host&gt; \
    -e IPTV_SER_PORT=&lt;port&gt; \
    v1st233/iptv:0.9
# username: admin
# password: password</code></pre>
<h2>测试</h2>
<pre><code>C:\Users\xx&gt;sqlmap -u http://10.10.220.161/iptv/login.php?id=device123</code></pre>
<p><img decoding="async" src="https://img.qingh.xyz/GwFBPP.png" alt="sqlmap" title="sqlmap" /></p>
<h3>问题原因</h3>
<p>查看<code>iptv/login.php</code>:</p>
<pre><code class="language-php">&lt;?php
ini_set(&#039;display_errors&#039;, 1);
ini_set(&#039;display_startup_errors&#039;, 1);
error_reporting(E_ERROR);

require_once &quot;aes.php&quot;;
require_once &quot;config.php&quot;;
$db = Config::GetIntance();

if (isset($_GET[&#039;id&#039;])) {
    $androidid = $_GET[&#039;id&#039;];
    $mealid = $db-&gt;mGet(&quot;iptv_users&quot;, &quot;meal&quot;, &quot;where deviceid=&#039;$androidid&#039;&quot;);
    $mealname = $db-&gt;mGet(&quot;iptv_meals&quot;, &quot;name&quot;, &quot;where id=&#039;$mealid&#039;&quot;);
    echo $mealname;
} </code></pre>
<p>定位<code>mGet</code>在<code>iptv/config.php:76</code>:</p>
<pre><code>    // 获取单条数据
    public function mGet($table, $value, $func = &quot;where 1&quot;) {
        if ($result = $this-&gt;mQuery(&quot;SELECT $value FROM $table $func&quot;)) {
            $row = mysqli_fetch_array($result);
            return $row[0];
        } else {
            return false;
            exit(&quot;&lt;script&gt;$.alert(&#039;mGet数据库有错误！$value,$table,$func&#039;);&lt;/script&gt;&quot;);
        } 
    } </code></pre>
<p>定位<code>$this-&gt;mQuery</code>在<code>iptv/config.php:50</code>:</p>
<pre><code>    // 执行SQL语句
    public function mQuery($func) {
        if ($result = mysqli_query($this-&gt;link, $func)) {
            return $result;
        } else {
            return false;
        } 
    }</code></pre>
<p>没有任何过滤，直接把参数拼接到SQL中了，<code>data.php</code>等多个文件存在相同问题</p>
<h2>用户量</h2>
<blockquote>
<p>fofa: body=&quot;群晖IPTV管理系统&quot;</p>
</blockquote>
<p>用户数量： 1,256</p>
<h2>修复</h2>
<pre><code>docker pull v1st233/iptv:latest</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.qingh.xyz/synology-iptv-sqli/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>清和IPTV Docker版</title>
		<link>https://www.qingh.xyz/go-iptv-docker/</link>
					<comments>https://www.qingh.xyz/go-iptv-docker/#comments</comments>
		
		<dc:creator><![CDATA[清和]]></dc:creator>
		<pubDate>Tue, 26 Aug 2025 03:36:21 +0000</pubDate>
				<category><![CDATA[docker]]></category>
		<category><![CDATA[瞎折腾]]></category>
		<category><![CDATA[群晖]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[iptv]]></category>
		<guid isPermaLink="false">https://www.qingh.xyz/?p=91</guid>

					<description><![CDATA[起因 &#8195;&#8195;24年因为不想在群晖里装太多乱七八糟的插件，所以想着整个项目wz1st/go-i [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>起因</h2>
<p>&emsp;&emsp;24年因为不想在群晖里装太多乱七八糟的插件，所以想着整个项目<a href="https://github.com/wz1st/iptv" title="wz1st/go-iptv">wz1st/go-iptv</a>把<code>群晖IPTV</code>插件给做成docker。<br />
&emsp;&emsp;由于刚开始的技术不成熟，整出了个精简完还剩1G多的镜像，且由于家里没人看电视和直播源越来越少逐渐搁置精简计划，漏洞修补也没啥动力。<br />
&emsp;&emsp;前两天突然心血来潮登录了docker，发现已经pull了8K，感谢各位，新版奉上。</p>
<h1>清和iptv</h1>
<blockquote>
<p>提取自矿神群晖IPTV并大改，由原来的PHP+MySql改为Go+Sqlite<br />
添加缺失功能，精简删除非必要功能，修改系统存在的安全漏洞      </p>
</blockquote>
<h1>注意</h1>
<p>当前版本与之前PHP版本并不兼容，若要使用PHP版本，请使用 <code>docker pull v1st233/iptv:20250905</code></p>
<h2>Change log</h2>
<h4>2025-9-26</h4>
<ul>
<li>未安装时全局跳转到安装页面</li>
<li>添加编译时无法下载</li>
</ul>
<h4>2025-9-25</h4>
<ul>
<li>go重构管理页面</li>
<li>改为sqlite，更清晰明了的文件映射</li>
<li>添加了自动安装及友好的安装提示</li>
<li>更友好的页面加载体验，专注家庭使用，删除了订单相关功能</li>
<li>更简洁的操作体验</li>
</ul>
<h4>2025-9-18</h4>
<ul>
<li>改不动这个史了，归档，go重构了下，看这个吧 <a href="https://github.com/wz1st/go-iptv">go-iptv</a></li>
</ul>
<h4>2025-9-5</h4>
<ul>
<li>修复了文件上传漏洞</li>
<li>修复了任意文件删除漏洞</li>
<li>添加定时更新外部列表</li>
<li>添加更改应用图标功能</li>
<li>添加自动重新编译功能</li>
<li>添加修改应用名称、包名、签名key功能</li>
<li>修改了系统图标、系统名称、系统版本</li>
</ul>
<h4>2025-8-25</h4>
<ul>
<li>添加docker自动构建，添加armv7、arm64、386、amd64版本</li>
</ul>
<h4>2025-8-22</h4>
<ul>
<li>修复了SQL注入漏洞</li>
<li>改为alpine+nginx+php-fpm+mariadb 精简镜像大小</li>
</ul>
<h2>安装</h2>
<pre><code class="language-bash">docker volume create iptv
docker pull v1st233/iptv:latest
docker run -d --name iptv_server -p &lt;port&gt;:80 -v iptv:/config v1st233/iptv:latest
# username: admin
# password: password</code></pre>
<p>或</p>
<pre><code class="language-bash">git clone https://github.com/wz1st/go-iptv.git
cd iptv
docker build -f Dockerfile -t image_name:latest .
docker volume create iptv
docker run -d --name iptv_server -p port:80 -v iptv:/config image_name:latest</code></pre>
<h2>使用</h2>
<p>容器跑起来后访问<code>http://&lt;ip&gt;:&lt;port&gt;</code>即可，根据提示安装系统，然后登录添加源-&gt;修改套餐-&gt;下载安装APK-&gt;授权用户即可使用</p>
<h2>鸣谢</h2>
<ul>
<li><a href="https://imnks.com/">我不是矿神</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.qingh.xyz/go-iptv-docker/feed/</wfw:commentRss>
			<slash:comments>63</slash:comments>
		
		
			</item>
	</channel>
</rss>
