概述
、
分類:布爾型、延時型
LOW等級
手工
1、首先了解業務,這裏和回顯注入不一樣,不會顯示id對應的用戶名,只是告訴我們他存在即爲真
輸入-1,返回爲假
三種注入POC(真 and 假=假)
嘗試第一種情況,返回爲真,說明數據沒有注入進去,不存在SQL注入漏洞
輸入第二種情況1' and '1024'='1025 ,返回結果爲假沒說明存在注入漏洞
嘗試第三種情況1" and "1024"="1025,返回爲真,說明數據沒有注入進去,不存在SQL注入漏洞
2、確定字符串長度,(在猜解字符串時,首先要知道字符串的長度)
函數:
舉例:
猜解:
通過二分法可確定字符串長度爲4
3、獲取字符串內容
函數:
舉例
舉例:
猜解:(採用二分法進行猜解),
依次獲取第二個第三個第四個字符
4、延時型注入
函數:
舉例:
利用延時注入猜解:
函數:
舉例:
用於延時注入:
自動化
5、SQLmap
獲取數據庫名稱
學習SQLmap注入方法:
-V參數表示輸出詳細信息。有六個等級這裏選擇3
mid和substr作用類似
可以發現SQLmap的思路和我們進行猜解時的的思路一樣的
】
Medium等級
手工
1、
進行改包:結果爲假,注入成功
自動化
2、SQLmap
High等級
1、手工
自動化
2、SQLmap
發現失效了
發現id在cookie 中
所以要用SQlmap 對cookie進行檢測(level參數>=2)
獲取用戶名密碼
Impossible等級
通過查看源碼發現檢測了id數據類型,使用了預編譯綁定id變量,有效防止SQL注入
‘