网站漏洞检测之Discuz论坛 3.4版本

Discuz!论坛目前最新版本为3.4版本,已经很久没有更新了,咱们SINE安全在对其网站安全检测的同时发现一处漏洞,该漏洞可致使论坛的后台文件能够任意的删除,致使网站瘫痪,后台没法登录。关于该网站漏洞的细节咱们来详细的分析看一下:php

Discuz漏洞的检测与分析前端

该漏洞发生的位置在于source目录下的admincp文件夹里的admincp_forums.php代码里,咱们用note编辑器打开查找到unlink函数调用的地方,就看到漏洞产生的缘由了,直接搜索$_get{'replybgnew'],定位到代码。漏洞的使用有限制,必须是discuz管理员的权限,因此说漏洞危害较小,但也仍是一处discuz的漏洞,以下图所示:mysql

从上图咱们看到代码首先会进行判断对于GET提交过来的参数会进行IF语句,从代码里获知当$multiset的值为真或者是为假的时候,就会将参数赋值为0,咱们接着往下看另一个的IF语句是如何使用的,当IF下来的时候会进行安全检测,将parse_url参数里的结果进行检测,来肯定前端提交过来的网址是否正确,代码执行到最后一步咱们看到attachurl的变量内容,居然能够伪造恶意代码插入进去。linux

咱们构造恶意代码首先搭建一下测试的Discuz论坛环境,服务器使用linux centos系统,PHP版本使用5.3版本,数据库mysql5.5,咱们从官方下载一份3.4正式版的代码,安装到我们的测试环境中。打开论坛,登录后台,而后找到论坛的模块管理,咱们点击最下端的提交,而后经过抓包获取数据,在提交的post数据中添加:sql

&replybgnew=../../../index.php&delreplybg=safe这个代码,而后再提交post,就会把网站的论坛首页删除掉,就会显示以下图:数据库

关于这个Discuz!网站漏洞,前提是须要获取论坛管理员的权限,相对来讲危害较小,但也不能忽视对网站安全的防御,时刻作好网站的安全备份,discuz要登录后台常常看下是否有漏洞补丁须要修复,关于这个漏洞的修复,建议将discuz的后台地址admin.php改成admin!@#ht.php这样即便知道管理员的帐号密码,也登录不了后台。centos

相关文章
相关标签/搜索