明天休息 發表於 2012-1-25 23:02:58

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

代码如下: <br />还是用一个demo.php显示效果,代码如下: <br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode3"> <br />&lt;?php <br />header("Content-Type:text/html;Charset=gb2312"); <br />echo $_GET["str"]; //受污染的,但还有gpc <br />echi "&lt;br/&gt;"; <br />echo addslashes($_GET["str"]); //调用addslashes函数过滤有害字符 <br />?&gt; <br /></div><br />
<p style="TEXT-INDENT: 2em">此时gpc=<span id="__kindeditor_bookmark_start_62__" style="DISPLAY: none"></span>on。先看结果 </p>
<p style="TEXT-INDENT: 2em">1) http://127.0.0.1/demo.php?str=php </p>
<p style="TEXT-INDENT: 2em">&nbsp;<img height="206" alt="" src="https://img.jbzj.com/do/uploads/userup/1201/25230I322A.gif" width="437" border="0" /></p>
<p style="TEXT-INDENT: 2em">2) http://127.0.0.1/demo.php?str=php' </p>
<p style="TEXT-INDENT: 2em">&nbsp;<img height="206" alt="" src="https://img.jbzj.com/do/uploads/userup/1201/25230R5XH.gif" width="441" border="0" /></p>
<p style="TEXT-INDENT: 2em">3) http://127.0.0.1/demo.php?str=%d5' </p>
<p style="TEXT-INDENT: 2em">&nbsp;<img height="206" alt="" src="https://img.jbzj.com/do/uploads/userup/1201/252309115057.gif" width="439" border="0" /></p>
<p style="TEXT-INDENT: 2em">实例2中,php被gpc和addslashes过滤了,但3却没有。 </p>
<p style="TEXT-INDENT: 2em">这个%d5'也可以写出%d5%27。当提交%d5'时 ' 会被转义,整个字符为 %d5\',\的编码为5c。 </p>
<p style="TEXT-INDENT: 2em">而%d5%5c高8位合并编码为汉字誠,\被我们非法利用,最终%d5'经转义合并编码为&ldquo;誠' &rdquo;进入sql不做过滤。 </p>
<p style="TEXT-INDENT: 2em">要了解这些先要百度一下所谓的&ldquo;双字节&rdquo;,也可以参考 http://bbs.7747.net/simple/?t105469.html </p>
<p style="TEXT-INDENT: 2em">一篇老文,因为临时要用到,就拉过来学习一下。 </p>
<p style="TEXT-INDENT: 2em">另附文章《双字节编码 php的隐形杀手》的下载地址,《黑客防线2009精华奉献本》上下册</p>
頁: [1]
查看完整版本: PHP 双字节、宽字节编码漏洞