Pikachu布尔盲注结合BurpSuite获取数据库名字详解

Pikachu布尔盲注结合BurpSuite获取数据库名字详解

1. 布尔盲注的概念

有些情况下,开发人员屏蔽了报错信息,导致攻击者无法通过报错信息进行注入的判断。这种情况下的注入,称为盲注。盲注根据展现方式,分为布尔型盲注和时间型盲注
布尔盲注是基于真假的判断(true or false); 不管输入什么,结果都只返回真或假两种情况; 通过and 1=1和and 1=2可以发现注入点。

2. 复现流程

2.1 发现注入点

如图,是Pikachu布尔盲注的界面
在这里插入图片描述已知里面有个用户名字叫做allen,那么我们在allen后面添加and 1=1和and 1=2试试,如下图。
在这里插入图片描述在这里插入图片描述从上述2张图片,不难看出,我们可以通过控制输入的内容来控制网页后端输出的内容。

2.2 尝试其他sql注入方式

联合查询为例,结果如下图

allen' union select 1,2 -- s

在这里插入图片描述

发现无法使用,那么我们就只能使用盲注了。

2.3 判断数据库长度

allen' and length(database())>6 -- s

在这里插入图片描述

allen' and length(database())>7 -- s

在这里插入图片描述

allen' and length(database())=7 -- s

在这里插入图片描述大家可以就像这么慢慢猜,用二分法去把数据库的长度试出来

2.4 爆破数据库名字

在这里,因为是靶场,所以我们直接结合着BurpSuite的暴力破解直接把数据库名字爆破出来。

所用函数

  • ascii()

  • substr() 字符截取函数

思路

利用substr()函数一个字一个字的截取数据库database(),用ascii()函数去转换成ascii码

代码

allen' and ascii(substr(database(),1,1))=112 -- s

在这里插入图片描述注:

因为大家都知道pikachu靶场的数据库名字是pikachu,所有我直接查询p的ascii码112

2.5 Bp抓包、爆破数据库

我们利用Bp(BurpSuite)抓包,发现如下图。
在这里插入图片描述废话不多说,直接Ctrl+I,开始爆破
在这里插入图片描述然后添加标记,此时我们应该思考的问题是,应该在哪里进行爆破呢?其实有2个点

  1. 已知数据库长度为7,所以截取函数最大应该为7

  2. ascii码表应该从33爆破到127(这个为什么大家看看ascii码表就可以了)

完成后,如下图
在这里插入图片描述

在这里插入图片描述上面的攻击模式设置第4个,集束炸弹模式!!!

然后就是设置payload,第二个同理
在这里插入图片描述
在这里插入图片描述点击右上角start attack,结果如下图所示
在这里插入图片描述发现刚好有7个对应着1至7,所以我们把它解码出来
在这里插入图片描述

3. 总结

其实当时我对于布尔盲注一直都是认为是一个一个的去把答案试出来,但是在看到了这个方法后,才觉得是我孤陋寡闻了,如果各位看客还有其他更好的解法欢迎大家在评论区讨论或者私信我。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值