网站安全检测内容(SINE!论坛3.4版本漏洞的检测与分析(图))
优采云 发布时间: 2022-02-02 06:14网站安全检测内容(SINE!论坛3.4版本漏洞的检测与分析(图))
最新版本的 Discuz!论坛目前是3.4,很久没有更新了。我们 SINE Security 在检查其 网站 安全性时发现了一个漏洞。该漏洞会导致论坛后台文件被删除。任意删除会导致网站后台瘫痪,无法登录。关于网站漏洞的详细情况,我们来详细分析一下:
Discuz 漏洞检测与分析
漏洞位置在源码目录下admincp文件夹下的admincp_forums.php代码中。我们用笔记编辑器打开调用unlink函数的地方,然后就可以看到漏洞的原因,直接搜索$_get{'replybgnew'],定位到代码。该漏洞的使用是有限的,必须是discuz管理员的权限,所以该漏洞危害性较小,但仍然是discuz漏洞,如下图所示:
从上图我们可以看出,代码会先判断GET提交的参数,然后执行IF语句。我们从代码中知道,当$multiset的值为true或者false时,参数会被赋值为0,我们继续看下另外一个IF语句是怎么用的。当 IF 下来时,会进行安全检查,检查 parse_url 参数中的结果,判断前端提交的 URL 是否正确。代码执行到最后一步,我们看到attachurl的变量内容实际上可以插入到伪造的恶意代码中。
我们先构建恶意代码搭建Discuz论坛环境进行测试,服务器使用linux centos系统,PHP版本使用5.3版本,数据库mysql5.5,我们从官方 3. 4 正式版代码安装到我们的测试环境中。打开论坛,登录后台,然后找到论坛的模块管理。我们点击底部的提交,然后通过抓包获取数据,并添加到提交的post数据中:
&replybgnew=../../../index.php&delreplybg=safe 这段代码,然后提交帖子,会删除网站的论坛首页,显示如下图:
关于这个Discuz!网站漏洞,前提是你需要获得论坛管理员的权限,相对危害较小,但不能忽视网站的安全保护,总要做好网站的job如果要登录后台,discuz经常会查看是否有漏洞补丁需要修复。为修复此漏洞,建议将discuz后台地址由admin.php改为admin!@#ht.php,这样即使知道管理员账号密码,也无法登录后台。