【发布时间】:2016-06-01 04:52:13
【问题描述】:
我们在 Apache 服务器上运行的一个 Wordpress 网站最近被 PHP 注入攻击。
黑客安装了数百个 URL,这些 URL 重定向到销售手表的外部电子商务; URL 的格式为http://www.example.com/eta.php?some_file.html;例如:http://www.example.com/eta.php?Jewellery-Watches-Others-c138-4.html。
我们认为我们已经删除了所有受感染的 PHP 代码。但是,被黑的 URL 不是返回 404,而是执行 301 重定向到 http://www.example.com/?some_file.html(即没有 eta.php 部分的相同 URL),最后显示网站主页,返回代码 200。请注意,我的.htaccess 文件似乎非常干净。
这个幻像重定向来自哪里?
我将非常感谢任何可以帮助我了解正在发生的事情的人。我担心我们没有完全消除黑客攻击。
感谢您的关注!
更多详情
在服务器上找不到文件eta.php。在被黑 URL 中用随机文件(例如 ate.php)替换 eta.php 会产生预期的 404 代码。
最后,我设法使用以下 .htaccess 规则强制被黑 URL 返回 404:
RewriteCond %{THE_REQUEST} /eta\.php
RewriteRule ^(.*)$ - [R=404,L,NC]
有趣的是,这条规则不起作用,好像黑客在某种程度上搞砸了%{REQUEST_URI}:
RewriteCond %{REQUEST_URI} ^/eta\.php [NC]
RewriteRule (.*) - [R=404,L]
【问题讨论】:
-
从轨道上核对服务器,从头开始重新安装,这次加强安全性,从已知良好的备份中恢复(我希望你有一些)。尝试清理某些东西通常没有什么意义。就您所知,您的服务器已被 root-kitted,并且无论您做什么都会不断恢复到“被黑状态”。
-
您可能在某处隐藏了一些添加此重写规则的恶意代码。检查的几个步骤: 1.查看您的WP安装文件的修改时间,看看最近是否有任何文件更新。 2. 搜索任何 add_rewrite_rule 引用,看看是否有可疑之处。 3.查找任何base64_decode引用(黑客可以使用base64字符串隐藏恶意代码)
-
被黑的网站问题与 SO 无关;见codex.wordpress.org/FAQ_My_site_was_hacked
-
谢谢@vard!根据您的建议,我在数据库中找到了三个负责重定向的条目:
_redirect_rule_from: /eta.php*、_redirect_rule_to: /、_redirect_rule_status_code: 301。如果您将评论作为答案,我会接受。顺便说一句,这使得@deceze 的建议更加有价值。我作为经销商(WHM + cPanel)在共享服务器上,所以核对它是不可能的:-) 但我会尽快删除并重新创建网站帐户。谢谢你们,你们太棒了!
标签: php wordpress .htaccess redirect mod-rewrite