禁用 XMLRPC 避免 WP 站点被 DDOS 或暴力登录


诱因

自从使用 Wordpress 建站以来,就一直被机器人暴力爆破登录密码,其规模已经足以引起DDos攻击,导致服务器启动没多久,资源就被耗尽,打开极其缓慢。

即使安装 Limit Login Attempts 插件进行登录限制,依然会被机器人用 IP 池持续攻击,成效甚微:

分析

从 Limit Login Attempts 插件的限制日志可以发现, 通过 XMLRPC 登录的次数远远大于通过 WP Login 登录的次数。

WP Login 就是通过 http://${site-url}/wp-login.php 直接登录, Limit Login Attempts 插件会加上校验码,使其不容易被爆破。

而 XMLRPC 的全称是 XML Remote Procedure Call,即 XML远程方法调用。它是 XHR (即 XMLHttpRequest)的一种实现,其交互消息都是基于 HTTP-POST 请求,请求的内容是 XML,服务端的返回结果同样也是 XML。

对于爬虫机器人而言,相对于 WP Login 方式,使用 XMLRPC 会更方便。因为前者更接近仿真方式登录,而后者则是纯脚本交互,而且可以绕过 Limit Login Attempts 等插件对登录页面的保护。

处理

知道根源,处理就很简单了。因为作为站长,一般是用不到 XMLRPC 去管理自己站点的,所以禁用它即可。

而禁用的方法有很多,最简单直接的方法,就是修改网站后台根目录的 .htaccess 文件,在末尾加上这段内容即可:

# forbit xmlrpc.php request (crawler, ddos, ...)
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
白帽子渗透测试入门资源:参考书、课程、工具、认证 白帽子渗透测试入门资源:参考书、课程、工具、认证
前言初入渗透测试领域,过程中遇到不少错综复杂的知识,也遇到不少坑,特此记录,慢慢整理慢慢填。 名词解析 名词 全称 解析 PwK Penetration Testing with Kali Linux Kali-Linux 渗透测
2018-12-16
下一篇 
Ansible-Tower 部署笔记 Ansible-Tower 部署笔记
前言作为时下最流行的自动化运维工具之一,Ansible 在业界应该是无人不知无人不晓的了。 作为一款轻量化的开源软件,它只需要简单地通过 SSH(对Linux平台)或 PowerShell(对Windows平台),无需被控主机安装客户端,就
  目录