SQL盲注


盲注的原因是因為不顯示數據庫報錯信息,導致我們沒法知道注入的信息是否與服務器發生交互,無法直觀的查看我們注入的數據對錯
 
但是我們還是可以通過一些邏輯關系去判斷是否能注入
例如:
如果我們通過1' and 1=1--+
發現和我們正常輸入1的結果一致,同理我們可以進行后續的注入測試
 
結合之前一篇章節說過,我們也可以對其字段進行猜測
例如:
思路:前面為真,后面猜測user這一列中沒有空,如果為真則顯示1號數據,當然我們也可以猜測user這一列有Null,或者我們可以猜測除了user其他列
根據列名,也可以繼續猜測表名,這里替換就是表名table
1'and table.user is not null --+  一層一層向上進行爆破查詢
 
猜測其他表: 1' and(select count(*)from guestbook)>0--+
 
模糊查詢:1' or user like '%a%  模糊查詢這里最好用or 那么此時的結果可能不是1這條結果
這里的方法還是通過burp進行暴力破解
 
Pis:
補充一種方式可以查詢出服務器系統的版本信息
1' and ORD(MID((VERSION()),1,1))&32>0--+
這句話的意思 VERSION為版本信息 MID為截斷功能例如對helao進行截取后面加上2,4,就從第二個e開始截取,到a停止截取到的字符串為ela,ORD功能為轉換字符為ASCLL碼。而后面的&32則是對一個字符的二進制的32那一位進行讀取,這里解釋下什么叫32那一位
1    1    1    1    1   1   1   1
128  64   32   16   8   4   2   1
這樣我們可以對一個字符進行逐個位的讀取,看他是否大於0判斷這個字符的ASCLL對應10進制是多少,從而得到這個字符具體是什么,這樣一位一位的猜測,最后可以得到服務器的版本信息
同理舉一反三我們可以查USER,database等等
 
 


免責聲明!

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



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