首页 > 其他分享 >宽字节注入

宽字节注入

时间:2022-10-14 09:35:03浏览次数:80  
标签:字符 字节 编码 双引号 汉字 注入

宽字节概念:

  • 当某字符的大小为一个字节时,称其字符为窄字节。

  • 当某字符的大小为两个字节时,称其字符为宽字节。

  • 所有英文默认占一个字节,汉字占两个字节。

  • 常见的宽字节编码:GB2312,GBK,GB18030,BIG5,Shift_JIS等。

产生原因:

如果数据库使用的的是GBK编码而PHP编码为UTF8就可能出现注入问题,原因是程序员为了防止SQL注入,就会调用我们上面所介绍的几种函数,将单引号或双引号进行转义操作,转义无非便是在单或双引号前加上斜杠(\)进行转义 ,但这样并非安全,因为数据库使用的是宽字节编码,两个连在一起的字符会被当做是一个汉字,而在PHP使用的UTF8编码则认为是两个独立的字符,如果我们在单或双引号前添加一个字符,使其和斜杠(\)组合被当作一个汉字,从而保留单或双引号,使其发挥应用的作用。但添加的字符的Ascii要大于128,两个字符才能组合成汉字 ,因为前一个ascii码要大于128,才到汉字的范围 ,这一点需要注意。

 

ascii大于128的可以通过摁住alt然后加数字打出,如alt+129=

引用文章:(22条消息) 宽字节注入详解_Stray.io的博客-CSDN博客_宽字节注入

标签:字符,字节,编码,双引号,汉字,注入
From: https://www.cnblogs.com/ruyan/p/16790537.html

相关文章