宽字节注入源于程序员设置MySQL连接时的错误配置,如下:

    set character_set_client=gbk
    这样的配置会引发编码转换从而导致绕过某些防护实现注入漏洞。具体分析一下原理:

    1. 正常情况下GPC开启或者使用addslashes函数过滤GET或POST提交的参数时,我们测试输入的’,就会被转义为\’;
    2. 若存在宽字节注入,输入%df%27时,经过单引号的转义变成了%df%5c%27,之后再数据库查询语句进行GBK多字节编码,即一个中文占用两个字节,一个英文同样占用两个字节且在汉字编码范围内两个编码为一个汉字。然后MySQL服务器会对查询语句进行GBK编码即%df%5c转换成汉字”運”,单引号逃逸出来,从而绕过转义造成注入漏洞。

    https://www.cnblogs.com/bmjoker/p/9134830.html