關於espcms的sql注入漏洞代碼審計復現

最近在看Seay大大的代碼審計一書,邊看邊做一些代碼審計的復現。

在講代碼審計思路時,大大用espcms舉例挖掘了個sql注入漏洞,現在準備復現一下。

此案例主要是根據關鍵字回溯,然後得到漏洞。

使用seay大的代碼審計系統,自動審計,可挖掘到一些敏感度代碼。例如:


挑選一個代碼,選中,雙擊進行查看:


此處是將參數帶入數據庫進行查詢,接下來對parentid進行全局搜索,發掘其參數傳遞過程:


在全局搜索裏邊發現,該參數會經過accept方法處理,跟蹤定位該函數:


通讀代碼可知,傳入的參數是R,所以此處傳遞參數的方法既可以是get也可以是post。然後使用daddslashes進行過濾,其實質就是addslashes。

在回顧前文代碼,sql查詢語句並沒用單引號進行分隔,因此,此處存在sql注入漏洞。

返回調用sql語句的那個方法,可知是一個繼承了connector的類,名爲important。因此可以直接全局搜索此類,查看他的調用。

發現在這個路徑下存在一個實例化調用:


繼續跟蹤這個對象:


這裏雖然存在include,但是由於之前有addslashes,所以無法完成任意文件包含。繼續看就是一個實例化類,調用函數的操作,因此可以構建exp:

http://127.0.0.1/espcms/adminsoft/index.PHP?archive=citylist&action=citylist&parentid=-1 union 1,2,user(),4,5

發佈了19 篇原創文章 · 獲贊 20 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章