看有人問 Discuz! X3.1 後台怎麼拿 shell,就下載了個看看,之前有人説 HTML 生成能拿 shell,我昨天官方網站下載的版本發現,靜態文件的擴展名,限制了 htm/html. 如果服務器不存在解析漏洞,就沒辦法執行 xxx.php;.htm, 就拿不下 shell 。 簡單研究了下,發現其實 Discuz! X3.1 後台 存在任意代碼執行問題。
也許比較雞肋吧,要後台權限,Discuz! 本身安全性還是很不錯的!
直接重現場景,執行任意代碼過程如下:
1. 先附上一張 系統版本的圖片 [Discuz! X3.1 Release 20131122]:

2. 全局–〉 網站第三方統計代碼–〉 插入 php 代碼 [其他地方<> 會被轉意]:
如插入
<?php phpinfo();?>

3. 工具–〉 更新緩存 [為了保險起見,更新下系統緩存]
4. 門户–> HTML 管理–〉 設置:
1) 靜態文件擴展名 [一定要設置成 htm] :htm
2) 專題 HTML 存放目錄: template/default/portal
3) 設置完,提交吧!

5. 門户–〉 專題管理–〉 創建專題:
1) 專題標題:xyz // 這個隨便你寫了
2) 靜態化名稱:portal_topic_222 //222 為自定義文件名,自己要記住
3) 附加內容:選擇上: 站點尾部信息

3) 提交
4) 回到門户–〉 專題管理, 把剛才創建的專題開啓,生成
6. 下面就是關鍵了,現在到了包含文件的時候了。
再新建一個專題:
1) 專題標題,靜態化名稱,這 2 個隨便寫
2) 模板名:這個要選擇我們剛才生成的頁面:./template/default/portal/portal_topic_222.htm

3) 然後提交,就執行了
<?php phpinfo();?>

剩下的自己發揮吧