3.布尔盲注

其余web文章参考:web学习目录

sqli-lab第八题

盲注:可以进行SQL注入,但是不能通过注入漏洞看到数据库的信息,但是可以通过真假判断数据库中的信息

布尔盲注方法:构造逻辑判断语句,判断信息真假,取出所有真值

1.判断存在SQL注入漏洞,如果查询语句执行成功,则会返回you are in,否则无返回
?id=1   //返回you are in
?id=1'   //无返回

2.判断字符型还是数字型注入
?id=1 order by 9999 --+
//如果是字符型,只会截取前面的1;如果是数字型,按照第9999字段排序,会报错,没这么大的表
//无报错判断为字符型注入
  1. 判断界面显示
?id=1' and 1=1 --+   //有显示
?id=1' and 1=2 --+   //无显示,说明and的结果会影响显示
用这个可以判断数据库的名字
  1. 判断数据库长度
?id=1' and length(database())=8 --+
//此处可以通过>来判断长度,最终得到结果是8
  1. 判断数据库名称
?id=1' and ascii(substr(database(),1,1))>0 --+   //先判断大于0,有这个库

?id=1' and ascii(substr(database(),1,1))=115 --+   //还是通过大于的方式,判断第一个字母为s
//但是这样手动判断很占用时间,可以尝试使用bp半自动
  1. bp使用方式

将正常的捕获115数字报文右击发送到intruder模块,点击position,这张图里面重点关注的是1,也就是第几位,和后面的115也就是那一位置对应的值

image-20230216110202767

将包重新右击发送到repeater模块,可以看到成功的包里面有you are in,改变猜测的数字后you are in不显示,所以可以通过you are in判断

image-20230216111547309

这里不用ascii判断,直接用字母,把ascii删掉,后面的数字换成字母,用单引号把字母扩起来

image-20230216173033711

重新把包发送到intruder模块,把第一位的1和字母变成变量,先clear $,

再add $两个

$\textcolor{red}{此处的攻击模式要选择集束炸弹}$

image-20230216173535682

使用笛卡尔积两两相乘,攻击类型选择集束炸弹

相当于有两个位置,准备两个字典,这两个字典做笛卡尔积

数字的位置选择1,2,3,4,5,6,7,8

在payloads里面,单步设置1

image-20230216174607919

第二个选择number,选择暴力破解

image-20230216175133235

选择start attack

最后结果搜索you are in,可以点击Payload排序,最终结果为security 可以点击Payload排序

image-20230216175622444,

posted @ 2023-03-30 10:58  热死也要烫头  阅读(71)  评论(0编辑  收藏  举报