實例講解False盲注基礎原理
0×01 前言
false盲注有些時候可以繞過一些WAF,也是容易被忽視的細節。本文的目的在於通過做CTF的同時來學習注入原理,同時也運用到自身的能力。這裡只是簡單說一些我自己的理解,也許網上有更好的思路和見解,都是值得學習的。
0×02 false注入原理
MYSQL的隱式類型轉換,當字元串和數字比較時,會把字元串轉為浮點數,而字元串轉換時會產生一個warning,轉換的結果為0,但如果字元串開頭是數字話還是會從數字部分截斷,轉換為數字
0×03 實例
舉例地址為:
http://118.89.219.210:49167/index.php(Bugku)
填入username和password之後,Burp抓包,send to repeater分析一下
發現過濾了挺多的,空格,%0a,/**/,and,union等等
但是 |(位或)&(位與)^(位異或)沒有過濾掉
這裡的話應該來說都可以用,我試了一下|(位或)和 ^(位異或),這兩個都是可以的
構造一個payload語句為:
函數介紹:
ASCII()返回字元表達式最左端字元的ASCII 碼值
當第一字母的ascii碼值為53的時候,右邊的表示式則為false,與『admin』 或, 相當與 0 | 0 結果為0,當username=0時,返回查詢欄位的所有數據,(只要username沒有以數字開頭的)這裡注意 按位或的優先順序高於=,所以是先按位或再賦值給username。
當然了,想構造為0的話不止只有位運算符,還有+號(『 』+『 』=0), -號(『 『-』 『=0), *號(『 『*』 『=0), /號(『 『/1=0), %取余(『 『%1=0)等等
可以先判斷一下欄位長度:
根據頁面信息判斷為32位
原理都講得差不多了
可以自己手注,但似乎太麻煩了
下面可以寫一個Python腳本跑出來
結果為:
※SikurPhone:內置「防黑客」加密貨幣錢包的手機
※混在運維部的安全員說「埠與口令安全」
TAG:瘋貓網路 |