帝國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
----------------------------------------------------------------------------------------------------------------------