web安全之sql注入布爾注入


條件:

當一個頁面,存在注入,沒顯示位,沒有數據庫出錯信息,只能通過頁面返回正常不正常進行判斷進行sql注入。

 

了解的函數

exists()
                   用於檢查  子查詢是否有返回數據。 結果是 ture或者false
 
ascii()
把字符轉化成ascii碼
substr()
     substr(string string,num start,num length);
偏移從1開始的 並不是0;
 
select ascii(substr((select user()),1,1));
 
步驟
(1) 看是否有注入點,判斷 整型還是字符串
(2)判斷查找的數據庫的長度
(3) 根據ascii()函數  得出庫名
(4) 查找庫,判斷庫的長度 , 根據ascii() 得出表名
(5) 判斷表名的長度,根據ascii() 得出列名
 
 
 
1.找注入點
 
 
2.一次判斷數據庫的版本號
select ascii(substr((select database()),1,1))
 
?id=1' 
and (select ascii(substr((select database()),1,1)) >115)
 --+
3.判斷查找的數據庫的長度
 
 

4. 得到表名

 

 

 

最終依次猜的表名為users


5. 得到列名

 

同理最終得到第2列列名為username,第3列列名為password



5. 得到列值

 

 

 

依次得到為admin4,同理可得其他數據

 


免責聲明!

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



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