用一个demo.php显示效果,代码如下: <?php header("Content-Type:text/html;Charset=gb2312"); echo $_GET["str"]; //受污染的,但还有gpc echi "<br/>"; echo addslashes($_GET["str"]); //调用addslashes函数过滤有害字符 ?> 此时gpc=on。先看结果
1) http://127.0.0.1/demo.php?str=php
2) http://127.0.0.1/demo.php?str=php'
3) http://HdhCmsTest2cto测试数据 /demo.php?str=%d5'
实例2中,php被gpc和addslashes过滤了,但3却没有。
这个%d5'也可以写出%d5%27。当提交%d5'时 ' 会被转义,整个字符为 %d5\',\的编码为5c。
而%d5%5c高8位合并编码为汉字誠,\被我们非法利用,最终%d5'经转义合并编码为[誠' ]进入sql不做过滤。 作者:lcx.cc
查看更多关于PHP双字节、宽字节编码漏洞 - 网站安全 - 自学p的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did12253