帝國CMS(EmpireCMS) v7.5配置檔案寫入漏洞分析
帝國CMS(EmpireCMS) v7.5配置檔案寫入漏洞分析
一、漏洞描述
該漏洞是由於安裝程式時沒有對使用者的輸入做嚴格過濾,導致使用者輸入的可控引數被寫入配置檔案,造成任意程式碼執行漏洞。
二、漏洞復現
1、漏洞出現位置如下圖,phome_表字首沒有被嚴格過濾導致攻擊者構造惡意的程式碼
2、定位漏洞出現的位置,發現在/e/install/index.php,下圖可以看到表名字首phome_,將獲取表名字首交給了mydbtbpre引數。
3、全文搜尋,$mydbtbpre,然後跟進引數傳遞,發現將使用者前端輸入的表字首替換掉後帶入了sql語句進行表的建立,期間並沒有對前端傳入的資料做嚴格的過濾
4、建立表的同時將配置資料和可以由使用者控制的表字首一起寫入到config.php配置檔案
5、通過對整個install過程的程式碼分析,可以發現沒有對使用者資料進行過濾,導致配置檔案程式碼寫入。
5.1、burp對漏洞存在頁面進行抓包,修改phome引數的值,構造payload,payload如下:
‘;phpinfo();//
5.2、在burp中的phome引數的值中輸入特殊構造的payload
6、檢視config.php配置檔案,發現成功寫入配置檔案
7、再次訪問安裝結束的頁面, http://192.168.10.171/empirecms/e/install/index.php?enews=moddata&f=4&ok=1&defaultdata=1
8、構造特殊的payload getshell
9、菜刀連線,成功getshell
----------------------------------------------------------------------------------------------------------------------
參考資料:https://qclover.github.io/2018/10/10/EmpireCMS_V7.5%E7%9A%84%E4%B8%80%E6%AC%A1%E5%AE%A1%E8%AE%A1.html