宽字节注入
宽字节注入:主要针对GBK编码的注入
基础:了解url转码
例如:
空格 : %20
’ : %27
# :%23
\ : %5C
addslashes() 函数
了解addslashes()函数,发现它会返回在预定义的字符之前添加反斜杠的字符串。
当我们进行注入时使用单引号或双引号进行语句的闭合时,该函数会自动在字符前添加反斜杠将字符转义,导致该字符无法实现作用而导致注入失败。
如何绕过addslashes()函数从而达到注入的效果呢?
方法一:在添加的反斜杠前再添加反斜杠,从而达到转义反斜杠的作用;
方法二:去掉反斜杠;
宽字节的原理
利用mysql的特性,当mysql使用GBK编码的时候,会认为两个字符是一个汉字(前一个ascii码需要大于128,才能达到汉字的范围)
’ -> ’
%df ’ ->%df%5C%27
进行转换时,前两个字符%df%5C合成为一个汉字从而去掉反斜杠来达到注入的目的。
GBK解密网站