可能重复:
我的服务器被黑了 紧急求助
我有一个 Expression Engine 网站,我想清理一下。该数据库已获得许多新用户,因此似乎数据库已被黑客入侵/添加了链接。一个主要问题是,在 Google 中点击该网站时会被绕过。所有访问者都被重定向到另一个网站。以下是搜索:http://tinyurl.com/72nzutj。第一个网站是有问题的。他们被重定向到的网站是http://sweepstakesandcontestsinfo.com/nl-in.php?nnn=555我一直试图在所有文件和数据库中找到这个重定向,但一直没有找到。这不是 .htaccess 重定向,我已经检查并确认了这一点。但到目前为止,我还没有在文件或数据库中找到 JScript 或 PHP 重定向。可能是因为 base64 或打包加密而隐藏得很好。有什么想法吗?
注意:没有可用的干净数据库版本
答案1
它只会使用来自 Google(也可能是其他搜索引擎)的引荐来源来重定向人们。如果我删除 curl 的引荐来源部分,我只会得到一个正常的页面。
curl -e "http://www.google.co.uk/search?q=new+wine+ireland" --include http://www.newwineireland.org/
HTTP/1.1 302 Found
Date: Sun, 20 Nov 2011 11:44:17 GMT
Server: Apache
Location: http://sweepstakesandcontestsinfo.com/nl-in.php?nnn=555
Vary: Accept-Encoding
Content-Length: 239
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://sweepstakesandcontestsinfo.com/nl-in.php?nnn=555">here</a>.</p>
</body></html>
响应的内容(标头之后)表明这是 Apache 生成的重定向,而不是 PHP 生成的重定向。大多数人在使用 PHP header() 函数进行重定向时不会想到发送正文,并且该文本与 Apache 生成的正文完全匹配。
对我来说,这意味着它不是一个 PHP 文件,也不是存储在数据库中的 javascript 或元重定向。
基于此,我建议查看 Apache 配置文件。/etc/apache(或发行版上的 /etc/httpd deoending)中的所有内容都需要检查。它不必是 RewriteRule 或甚至 Redirect。它可以是一个额外的 Include 指令,用于从其他地方的另一个文件加载重定向。它甚至可以是一个更改 .htaccess 文件调用的指令。
可能有助于您找到它的命令是grep -r "sweepstakesandcontestsinfo" /etc/apache
。
你没有提到如何您检查过它不是 .htaccess 重定向。.htaccess 是最有可能的选项,因为它通常不需要任何特殊权限即可在文档根目录中写入其中一个。
如果您还没有这样做,请运行此命令: find /var/www -name .htaccess
但将“/var/www”更改为您的文档根目录。
如果找不到任何内容,请尝试使用相同的命令,但将 / 作为第一个参数。显然,您必须检查找到的每个 .htaccess 文件中的每一行。
如果你发现你的某些 Apache 配置文件是更改,则该攻击者拥有您机器的 root 访问权限。此时最好的应对措施是将其脱机并开始适当的清理。这里和安全关于在解决了眼前问题(即重定向)之后如何从妥协中恢复。
答案2
尝试链接几次后发现,Google 搜索结果指向“错误”的网站,但直接指向 URL(www.newwineireland.org)并不会导致重定向。
也许您遇到的是 Google 搜索中毒问题而不是网站问题?