环境

攻机:172.16.90.124
image.png

靶机:172.16.90.122
image.png

范围:Discuz 3.4以下的所有版本

漏洞形成原因

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

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

漏洞利用

靶机使用docker开启环境
image.png

访问靶机网站进入Discuz论坛,注册一个用户
image.png

然后点击设置按钮来到个人资料设置页面,查看源代码
image.png

Ctrl+F,搜索formhash,找到自己用户名的hash复制下来
image.png

回到个人资料页面,HackBar点击Load URL,POST请求如下:
birthprovince=../../../robots.txt&profilesubmit=1&formhash=21b36ab7

可以看到资料被修改,应该是源代码这里没有进行过滤,导致可以任意输入
image.png

然后在桌面上新建一个upload.html的网页,将下面的代码复制进去,将其中的ip改成discuz的域名,[form-hash]改成你的formhash:21b36ab7








上面代码是删除robots.txt文件,删除之前,先访问一下robots.txt,看看能不能访问
image.png

使用代码后
image.png
image.png