宽字节注入原因:
程序员设置MySQL连接时错误配置为:set_character_client = gbk ,
这中配置会引发编码转换从而导致的注入漏洞。
- addslashes()函数过滤GET或POST提交的参数时,黑客使用单引号 ’ 会被转义成 ’ ,
- 若是存在宽字节注入,斜杠是%5c ( url编码),若是前面的组合起来形成汉字,单引号就可以逃逸出来,从而造成注入漏洞。
(GBK编码,使用了双字节编码方案,其编码范围从8140至FEFE(剔除xx7F),共23940个码位,共收录了21003个汉字)
GBK 的字符集范围为 8140-FEFE,DF5C 在这个范围内,会被结合,这样就出来一个引号,截断数据,造成注入。
GBK 是一个汉字编码标准
GBK编码是数据库编码,跟前台的编码无关。
附加
%5c暴库原理:
"%5c"是""的十六进制代码
简单点说,就是在打开页面的时候把网页中的 / 换成 %5c,然后提交就可以得到数据库地址了,但并不是所有页面都可以成功,而需要asp?id=这样的地址。因为这样的网址表示页面调用了数据库.
"%5c"暴库法,它不是网页本身的漏洞,而是利用了IIS解码方式中的一个特性,如果IIS安全设置不周全,而网页设计者未考虑IIS错误,就会被人利用。
关于“%5c暴库原理”更多:https://blog.csdn.net/mm569489205/article/details/52015082