原理
当传递一个参数id=1'得时候,当我们输入这个单引号,会被认为是非法字符,会被过滤函数添加'\'给过滤掉,所以我们想要程序接曼我们传递得参数中包含单引号,那么就需要把这个转义字符'\'干掉,那如何才能干掉呢?当http协议传输得时候,是要经过url编码的,如果这个编码完成后,传递到服务器时,我们可以在单引号前加上一个%81这样得编码,最后这样解码得时候,这个%81就会和'/'对应得编码相结合按照gbk编码要求去解码,最后只剩下个单引号。
条件1)数据库使用GBK编码;使用utf-8就不行
2)使用了addslashes(),mysql_real_escape_string(),mysql_escape_string()之类的函数来转移我们的符号
使用如果
?id=1'不报错
?id=1%81'报错
用%81来干掉\
后面就是union注入