看有人問 Discuz! X3.1 後臺怎麼拿 shell,就下載了個看看,之前有人說 HTML 生成能拿 shell,我昨天官方網站下載的版本發現,靜態檔案的副檔名,限制了 htm/html. 如果伺服器不存在解析漏洞,就沒辦法執行 xxx.php;.htm, 就拿不下 shell 。 簡單研究了下,發現其實 Discuz! X3.1 後臺 存在任意程式碼執行問題。
也許比較雞肋吧,要後臺許可權,Discuz! 本身安全性還是很不錯的!

直接重現場景,執行任意程式碼過程如下:

1. 先附上一張 系統版本的圖片 [Discuz! X3.1 Release 20131122]:

20140310094944

2. 全域性–〉 網站第三方統計程式碼–〉 插入 php 程式碼 [其他地方<> 會被轉意]:
如插入

<?php phpinfo();?>

20140310095111

3. 工具–〉 更新快取 [為了保險起見,更新下系統快取]

4. 門戶–> HTML 管理–〉 設定:

1) 靜態副檔名 [一定要設定成 htm] :htm

2) 專題 HTML 存放目錄: template/default/portal

3) 設定完,提交吧!

20140310095234

5. 門戶–〉 專題管理–〉 建立專題:

1) 專題標題:xyz // 這個隨便你寫了

2) 靜態化名稱:portal_topic_222 //222 為自定義檔名,自己要記住

3) 附加內容:選擇上: 站點尾部資訊

20140310095336

3) 提交

4) 回到門戶–〉 專題管理, 把剛才建立的專題開啟,生成
6. 下面就是關鍵了,現在到了包含檔案的時候了。

再新建一個專題:

1) 專題標題,靜態化名稱,這 2 個隨便寫

2) 模板名:這個要選擇我們剛才生成的頁面:./template/default/portal/portal_topic_222.htm

20140310095517

3) 然後提交,就執行了

<?php phpinfo();?>

20140310095619

剩下的自己發揮吧