宽字符注入
mysql编码知识:http://blog.csdn.net/fdipzone/article/details/18180325
http://localhost/index.php?id=%df
脚本:
输出:
$_GET[‘id’]已进行url解码。然后strlen()计算字节长度,结果是1字节。其转换为ascii码后是233。
下面是没有直接拿原始请求参数$_SERVER[‘QUERY_STRING’],然后手动url解码。
脚本:
输出:
参数为:id=%df’
转义之后的参数的16进制是:0xdf 0x5c 0x27分别对应 %df \ ‘
GBK编码方式:GBK 采用双字节表示,总体编码范围为 8140-FEFE 之间,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 XX7F 一条线。
0xdf 0x5c 这俩字节符合GBK 汉字编码规则,组合成汉字 “運” 。0x5c 被吃掉了。
最终变成 運’。