xmlrpc 攻击造成服务器负载过高如何处理?

最近,有个客户使用 Hostinger 服务器搭建外贸站。服务器虽然只是1盒1G的VPS,但部署了两个新的 WordPress 站,应该是足够了的。但客户的服务器负载却长期持续 90% 以上。按道理来说,两个 WordPress 新站不至于造成如此高的服务器负载。

在查看过客户的网站日志后,发现了大量如下所示的 POST 请求:

20.0.176.51 - - [30/Nov/2022:03:27:05 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:05 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:06 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:07 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:07 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:08 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:09 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:09 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:10 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:10 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:11 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:12 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:12 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:13 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
20.0.176.51 - - [30/Nov/2022:03:27:13 +0000] "POST //xmlrpc.php HTTP/1.1" 200 413 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"

很明显,客户的 WordPress 网站受到了 XML-RPC 攻击。在为客户禁用了 XML-RPC 后,服务器负载恢复到正常状态。

什么是 XML-RPC

XML-RPC(远程过程调用)是为跨平台通信而创建的,其通过 HTTP 方式进行传输,以 XML 方式进行编码。客户端通过向服务器发送 HTTP 请求并接收 HTTP 响应来进行这些调用。XML-RPC 通过 HTTP 请求调用函数,然后这些函数执行一些操作并发送硬编码响应。 

xmlrpc.php 每次发出请求时,都会发送用户名和密码进行身份验证。这也会导致 WordPress 网站遭受一些不必要的攻击。

我们可以通过禁用 XML-RPC 来避免相关攻击,进而提升 WordPress 网站的安全性。

方法一:安装 Disable XML-RPC 禁用 XML-RPC

登录 WordPress 仪表盘后,导航到插件->安装插件,然后搜索安装 Disable XML-RPC插件。在安装完成后,无需任何操作,只需要激活该插件,就会禁用 XML-RPC。

xmlrpc 攻击造成服务器负载过高如何处理?

方法二:在functions.php中禁用 XML-RPC

登录 WordPress 仪表盘后,导航到外观->主题文件编辑器->当前主题的functions.php文件,然后将下面的代码添加到文件尾部。

add_filter('xmlrpc_enabled', '__return_false');

如果将代码添加到主题的 functions.php 文件中,在主题升级后添加的代码会被覆盖,建议先为主题创建子主题,然后将代码添加到子主题的 functions.php 文件中。

方法三:通过 .htaccess 禁用 XML-RPC

对于使用 Apache 的用户,可以将下面的代码粘贴到网站根目录下的.htaccess文件中:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
 deny from all
allow from 192.168.0.1
</Files>

上面的代码只允许特定IP使用 XML-RPC,如果要完全禁用 XML-RPC,可将allow from 192.168.0.1从文件中删除即可。

方法四:在网站配置文件中禁用 XML-RPC

对于使用 Nginx 的用户,可将下面的代码添加到网站的配置文件中:

    location ~* /xmlrpc.php$ {
        allow 192.168.0.1;
        deny all;
    }

综上,就是 WordPress 网站禁用 XML-RPC 的方法。

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/how-to-disable-xmlrpc-for-wordpress/

(0)
牛奇网牛奇网
上一篇 2022年11月30日 上午9:10
下一篇 2022年12月2日 上午8:49

相关推荐

发表回复

登录后才能评论