CmsEasy 漏洞挖掘
寫在前面
在index.php ,定義了一些常量,設置 文件包含的目錄,和注冊了自定義加載類。
lib目錄中前兩個文件夾分別存放的是后臺和前臺的控制器。
inc文件夾提供一些必要的支撐,數據庫的操作,以及控制器的基類,模板渲染類。
所有的控制器都繼承于 act 類。同時他還給所有數據庫的表,設計了相對應的操作,位于table文件夾下,此文件夾下的類也都繼承于 table類。
tool文件夾存放一些小工具,自定義函數,waf之類的,應用調度,也是在此文件夾處理。
繼續跟進入口文件。
實例化了 front對象,并調用 dispatch 方法。
他的構造方法就是獲取對應的參數,
同時對所有的請求進行轉義和html實體的處理。
這里獲取對應的控制器和操作。
這兩個靜態變量,在 dispatch 方法 中,用于實例化控制器,并調用方法。
前臺sql注入
在 crossall_act.php 中存在 execsql_action 方法
他接受一個get請求的 sql參數,然后進行一個解碼的操作【網絡安全學習攻略】
但此文件還同樣提供了加密的函數,都不需要逆向他的算法,直接利用其加密sql語句。
我們可以利用此函數加密 sql語句,最后執行我們的sql語句
執行一個sql查詢。
后臺RCE
一
在language_admin.php 中,有add_action方法,這個方法用于給語言文件添加規則,
當id是1時,語言包是中文語言包,由于hackbar 沒辦法提交submit參數 ,我這里直接改成了 submi。
system_custom.php文件中有空數組,用他來進行嘗試。
插入新定義的鍵值對,且文件名和插入內容都是可以控制的,由于對表單數據存在waf,被轉義的和轉成html實體,無法對原文件造成危險。
注意這句話,他插入鍵值對的邏輯就是講文件中的 );替換為 換行符 加上
,再補上); 。【網絡安全學習攻略】
他的想法是沒錯的,但我覺得不應該,萬一字符里有了 ); 呢。
把); 去掉,再插一條。
報錯是好事情,說明里面可以做文章。由于 此php文件 是直接 return 一個數組的,沒辦法直接在數組外面寫東西的,這些是語法問題。
php的數組比較隨意的。
觀察上面的錯誤,因為先前 拼接的 ); 導致中間逃出了一個單引號,剩下的就好辦了,配合 , 和 /* 解決后面的問題。
成功拼接。
二
在update_admin.php 中存在 downfile_action 操作,存在可控url參數,
導致我們可以從任意服務器下載壓縮文件,
并解壓,壓縮文件中可以寫入 upgrade/upgrade.sql ,sql注入,對數據庫信息造成破壞。
并解壓,壓縮文件中可以寫入 upgrade/upgrade.sql ,sql注入,對數據庫信息造成破壞。
還可以寫入木馬文件。
成功寫入。
最后
想學技術自己挖洞的朋友,可以關注私我,學習網絡安全
【網絡安全學習攻略】
總結
以上是生活随笔為你收集整理的CmsEasy 漏洞挖掘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web安全实战训练营
- 下一篇: 一款针对Outlook的红队安全研究工具