原理
转义特殊字符('或者“)时,因为宽字节占用的字符长度,可以构造语句,从而消灭掉转义字符斜线/
手工注入
- sqli_labs 第32关
判断是否有注入点
1.以’构造,看页面是否报错 (假设我是不知道这关是宽字节注入)

以引号构造语句,没有报错

以双引号构造语句,没有报错
这个时候,通过我现在已有的认知我会想是不是被转义了,我会想用宽字节试试

以%df‘来构造语句,结果报错了,有很大可能存在注入点
补充:’号前的%df并不是非它不可,只要十六进制值大于80(128),就可以被识别为宽字节。
-
构造正确的逻辑语句

通过显示查询语句,我们可以看到,程序识别到‘会在’前面加一个转义字符,来破坏掉‘的功能。这本没有问题,问题出在程序采用宽字节我可以构造字符使得和/一起产生一个宽字节字符,破坏了转义字符/ -
构造错误的逻辑语句

获取当前表的字段数

猜测值:3

猜测值:4
通过3正常显示页面,4页面报错可得出结论:当前表的字段数为3。
获取页面显示位置

通过结果,可知位置2,3会显示数据
显示数据库

我们选择 security数据库
显示数据表

我们选择users 这张表
显示表中的字段

通过结果我们发现是’号被过滤了,所以我们需要将表名users转换为hex编码

显示字段中的数据

显示字段中的数据

通过BurpSuite辅助我们获取数据