web安全之sql注入布爾注入

條件: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,同理可得其餘數據
相關文章
相關標籤/搜索