zzcmsV8.2之SQL注入漏洞審計

1、漏洞發現:

發現注入點存在/user/del.php文件下。

注入點存在於第141行(142爲自己添加的測試代碼),注入參數爲tablename,此處tablename接收時未經過任何安全檢查。

可見,只對$id進行了安全檢查。

 

2、漏洞驗證:

首先,通篇閱讀del.php文件,掌握邏輯結構,發現主要針對tablename傳入的參數值進行選擇和判定。

這裏的使用tablename進行查詢的語句都存在注入點,選走後一個條件構造,將參數值設置爲一個文件中沒有出現過的表名,則進入最後一個else條件。

然後抓包,構造payload(沒有回顯,採用時間盲注):id%5B%5D=1&tablename=zzcms_zx where id=1 and if((ascii(substr(user(),1,1)) =112),sleep(5),1)%23

如果查詢到user()的第一個字母是‘r’(我的用戶是root),則休眠5秒。

也可以將$sql輸出,放到navicat裏面測試,效果更明顯。

這樣就可以寫poc**了。