宽字节注入
原理
转义特殊字符('或者“)时,因为宽字节占用的字符长度,可以构造语句,从而消灭掉转义字符斜线/
手工注入
- sqli_labs 第32关
判断是否有注入点
1.以’构造,看页面是否报错 (假设我是不知道这关是宽字节注入)
以引号构造语句,没有报错
以双引号构造语句,没有报错
这个时候,通过我现在已有的认知我会想是不是被转义了,我会想用宽字节试试
以%df‘来构造语句,结果报错了,有很大可能存在注入点
补充:’号前的%df并不是非它不可,只要十六进制值大于80(128),就可以被识别为宽字节。
-
构造正确的逻辑语句
通过显示查询语句,我们可以看到,程序识别到‘会在’前面加一个转义字符\,来破坏掉‘的功能。这本没有问题,问题出在程序采用宽字节我可以构造字符使得和/一起产生一个宽字节字符,破坏了转义字符/ -
构造错误的逻辑语句
获取当前表的字段数
猜测值:3
猜测值:4
通过3正常显示页面,4页面报错可得出结论:当前表的字段数为3。
获取页面显示位置
通过结果,可知位置2,3会显示数据
显示数据库
我们选择 security数据库
显示数据表
我们选择users 这张表
显示表中的字段
通过结果我们发现是’号被过滤了,所以我们需要将表名users转换为hex编码
显示字段中的数据
显示字段中的数据
通过BurpSuite辅助我们获取数据