我收到数以万计的 Apache 攻击(很可能是恶意的),导致服务器瘫痪。Apache 日志上的所有攻击都如下所示:
[30/Jan/2022:21:57:41 +0000] "POST //xmlrpc.php HTTP/1.1" 200 630 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36"
(注意双斜线。我不知道这是什么意思。)
我在 .htaccess 上添加了以下规则,以尝试减轻服务器负载:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^//xmlrpc.php
RewriteRule .* - [F,L]
</IfModule>
当我运行时curl -kIL -X POST -H 'Host: [REDACTED]' https://127.0.0.1:443/xmlrpc.php
,我收到 403 错误代码。
但是,显然这还不够:根据日志,Apache 对带有两个斜杠的请求不断返回 200。我该如何阻止这些请求(返回 403)?如何使用 curl / wget / 等检查阻止是否有效?
我需要一条规则来防止“POST //xmlrpc.php HTTP/1.1”返回 200(HTTP OK)并返回 403。
答案1
尽快禁用 WordPress 安装中的 XML-RPC。这是一个很大的安全风险,您现在看到的问题只是开始。例如,请参阅https://www.getastra.com/blog/cms/wordpress-security/wordpress-xml-rpc-exploit-everything-you-need-to-know/了解详情。(无任何关联。)