PHP 双字节、宽字节编码漏洞

人生的路,说长也很长,说短也很短。偶遇不幸或挫败只能证明某一时候某一方面的不足或做得不够。
代码如下:
还是用一个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://127.0.0.1/demo.php?str=%d5'

 

实例2中,php被gpc和addslashes过滤了,但3却没有。

这个%d5'也可以写出%d5%27。当提交%d5'时 ' 会被转义,整个字符为 %d5\',\的编码为5c。

而%d5%5c高8位合并编码为汉字誠,\被我们非法利用,最终%d5'经转义合并编码为“誠' ”进入sql不做过滤。

要了解这些先要百度一下所谓的“双字节”,也可以参考 http://bbs.7747.net/simple/?t105469.html

一篇老文,因为临时要用到,就拉过来学习一下。

另附文章《双字节编码 php的隐形杀手》的下载地址,《黑客防线2009精华奉献本》上下册

到此这篇关于PHP 双字节、宽字节编码漏洞就介绍到这了。调节好兴奋期,学习一浪高一浪。更多相关PHP 双字节、宽字节编码漏洞内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
防止SQL注入攻击的一些方法小结

PoisonIvy Rat 远程溢出实战

PHP木马大全 一句话的PHP木马的防范

mssql2005 DB权限导出一句话

一次奇遇的渗透