宽字节注入(三)

$sql = 'select *from user where username =(\''.$username.'\') and password=(\''.$password.'\')';

这里只是加了过滤,我要我们把前面的小括号和单引号闭合就可以了。再把后面的注释掉就是了。

本来应该是    %df') and 1=1 -- qwe  但是这里是POST传参,POST传参不会解析URL编码
所以我们这里用    a') or 1=1 -- qwe

我们知道要绕过魔术引号的话,必须让一个字符和单引号结合成一个共同体,这样就把魔术引号绕过了。
一个汉字就是占2个字符,一个字符加上单引号的字符用URL编码就是 %df%5c
但是这里是POST传参,POST传参不会解析URL编码,那我们不用URL编码,是不是df5c呢

很遗憾并不能

df’) and 1=1 #
在这里插入图片描述

绕过方法一: 抓一个包,然后修改hex的值在这里插入图片描述在这里插入图片描述

找到我们要替换字符的位置,我们这里写的是a,a的16进制是61
在这里插入图片描述在这里插入图片描述这样我们就成功绕过了
在这里插入图片描述

方法二:

原理

UTF-8 =>%E8%81%82 聂
gkb => %e8%81%82%5c => 两个汉字

3+1=4/2=2字符

你传输的编码(UTF-8)和数据库的编码不一样,就导致融合(进行编码)(因为utf8 占3个字节,加上 \ 就是4个字节,而gbk是2个字节组成一个汉字,所以这里就相当于是2个汉字)
如果数据库也是utf8,那就不行了
数据库是非英文编码,我们就有机会
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值