SQL注入之宽字节注入

宽字节注入

西欧字母符号,通过1个字节来表示。东亚字符通过至少两个字节来表示。GBK编码就是用两个字节来表示中文区字符的一个编码标准。

GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE(高字节从81到FE,低字节从40到FE),剔除xx7F码位,共23940个码位。

条件

后台使用GBK编码的时候,存在着看不见的ascii码转换为GBK编码的转换过程,可以使用宽字节注入。

原理

编码转换存在着单字符被合并的情形

反斜杠对应url编码%5c,是单字节的。

在%5c前再加入一个单字节字符%dd(范围可以是81到FE之间),就成了%dd%5c

而当后端使用GBK编码的时候,会将合理的两个单字节ANSCII字符解析成一个双字节的GBK编码字符。

你可能感兴趣的:(MySQL,学习技术,sql)