xinjscn 發表於 2019-7-18 15:58:50

discuz漏洞修复方案与网站安全防护加固

<font style="font-size:15px"><font style="font-size:18px">&nbsp;&nbsp;近期我们SINE安全在对discuz x3.4进行全面的网站渗透测试的时候,发现discuz多国语<br /><br />言版存在远程代码执行漏洞,该漏洞可导致论坛被直接上传webshell,直接远程获取管理员权限<br /><br />,linux服务器可以直接执行系统命令,危害性较大,关于该discuz漏洞的详情,我们来详细的<br /><br />分析看下。<br /><br /></font></font><img title="1-1ZG6091IE21.png" id="aimg_2346" aid="2346" src1="static/image/common/none.gif" zoom="https://www.dismall.com/data/attachment/forum/201908/18/152002zcbcdj8f2nnhqdgj.png" src="https://www.dismall.com/data/attachment/forum/201908/18/152002zcbcdj8f2nnhqdgj.png" class="zoom" onclick="zoom(this, this.src, 0, 0, 0)" width="600" inpost="1" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})" /><br /><br /><font style="font-size:15px"><font style="font-size:18px">discuz漏洞影响范围:discuz x3.4 discuz x3.3 discuz x3.2,版本都受该网站漏洞的影响,漏洞<br /><br />产生的原因是在source目录下function文件夹里function_core.php代码里的cookies与语言lang<br /><br />uage参数值并没有详细的进行安全过滤与检测,导致可以插入恶意的代码到数据库,并远程执<br /><br />行恶意代码,可获取webshell权限。</font></font><br /><br /><font style="font-size:15px"><strong><font style="font-size:18px">discuz漏洞分析</font></strong></font><br /><br /><font style="font-size:15px"><font style="font-size:18px">我们来看下刚才产生漏洞的代码,在第535行往下看,有一段代码是这样写的,默认网站系统<br /><br />将缓存数据存储在data文件夹里的template目录中,缓存文件名的命名是由前面的discuz_lang<br /><br />参数进行控制来命令的,漏洞产生的原因就在这里。那这个discuz_lang参数的值是从来获取来<br /><br />的呢? 我们跟进分析网站代码,可以看到是从language语言这一变量里去获取的值,也就是说<br /><br />,我们要利用这个网站漏洞,首先要去改变这个language的值,将恶意代码插入到这个值当中<br /><br />去,POC代码如下:<br /><br /></font></font><img title="1-1ZG6091R2920.png" id="aimg_2345" aid="2345" src1="static/image/common/none.gif" zoom="https://www.dismall.com/data/attachment/forum/201908/18/152001gcaa3fn2qjm435n9.png" src="https://www.dismall.com/data/attachment/forum/201908/18/152001gcaa3fn2qjm435n9.png" class="zoom" onclick="zoom(this, this.src, 0, 0, 0)" width="600" inpost="1" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})" /><br /><br /><font style="font-size:15px"><font style="font-size:18px">post数据到论坛的forum.php页面,将post数据改为:Z3T2_2132_language=en'.phpinfo().';即<br /><br />可执行php语句,</font><font style="font-size:18px">整个漏洞的分析,我们可以看出discuz官方并没有对post数据里的cookies值<br /><br />进行安全过滤与判断,导致可以直接写入language里恶意代码并远程执行,可以构造一句话代<br /><br />码,直接获取webshell。<br /><br /></font></font><img title="1-1ZG6091T9317.png" id="aimg_2344" aid="2344" src1="static/image/common/none.gif" zoom="https://www.dismall.com/data/attachment/forum/201908/18/152001bdgs6dz8l1djtg91.png" src="https://www.dismall.com/data/attachment/forum/201908/18/152001bdgs6dz8l1djtg91.png" class="zoom" onclick="zoom(this, this.src, 0, 0, 0)" width="600" inpost="1" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})" /><font style="font-size:15px"><br /> </font><br /><br /><font style="font-size:15px"><strong><font style="font-size:18px">网站漏洞修复与安全防护方案</font></strong><br /> </font><br /><br /><font style="font-size:15px"><font style="font-size:18px">对discuz的版本进行全面的升级,在language参数值中进行全面的安全过滤,限制逗号,以及闭<br /><br />合语句的执行,还有\斜杠都一些特殊恶意代码进行拦截,必要的话对其进行转义,如果对代码<br /><br />不是太熟悉的话,也可以找专业的网站安全公司来进行漏洞修复,国内也就SINE安全公司,绿<br /><br />盟,启明星辰比较专业。再一个对discuz目录的权限进行安全分配,限制data目录的脚本执行权<br /><br />限,防止PHP脚本的运行,最重要的就是做好网站的安全防护。</font></font><br /><br />进行<em>, </em>discuz<em>, </em>漏洞<em>, </em>安全

xinjscn 發表於 2019-7-18 15:59:23

转载地址&nbsp;&nbsp;https://www.sinesafe.com/article/20190716/discuzloudong.html#

xinjscn 發表於 2019-7-18 15:59:39

希望对大家有用

1314学习网 發表於 2019-8-17 09:05:39

<br /><br />Discuz!X.3.4 ML任意代码执行漏洞修复(discuz多国语言版)<br />https://www.dismall.com/thread-1930-1-1.html

xiongmao 發表於 2019-8-17 09:32:50

厲害了,我的哥
頁: [1]
查看完整版本: discuz漏洞修复方案与网站安全防护加固