针对WordPress的xmlrpc.php暴力破解攻防

绪论

通常wordpress登录接口都是做了防暴力破解防护的,利用xmlrpc.php提供的接口尝试猜解用户的密码,可以绕过wordpress对暴力破解的限制。xmlrpc.php或可导致拒绝服务

利用原理

Pingback 是三种类型的反向链接中的一种,当有人链接或者盗用作者文章时来通知作者的一种方法。可以让作者了解和跟踪文章被链接或被转载的情况。一些全球最受欢迎的 blog 系统,都支持 Pingback 功能,使得可以当自己的文章被转载发布的时候能够得到通知。 WordPress 中有一个可以通过 xmlrpc.php 文件接入的 XMLRPC API,可以使用 pingback.ping 的方法加以利用。 其他 BLOG 网站向 WordPress 网站发出 pingback,当WordPress处理 pingback 时,会尝试解析源 URL。如果解析成功,将会向该源 URL 发送一个请求,并检查响应包中是否有本 WordPress 文章的链接。如果找到了这样一个链接,将在这个博客上发一个评论,告诉大家原始文章在自己的博客上。 黑客向使用WordPress论坛的网站发送数据包,带有被攻击目标的 URL(源 URL)。WordPress 论坛网站收到数据包后,通过 xmlrpc.php 文件调用 XMLRPC API,向被攻击目标 URL 发起验证请求。如果发出大量的请求,就会对目标 URL 形成 HTTP Flood。当然,单纯向 WordPress 论坛网站发出大量的请求,也会导致 WordPress 网站自身被攻瘫。 除了 DDoS 之外,黑客可以通过源 URL 主机存在与否将返回不同的错误信息这个线索,如果这些主机在内网中确实存在,攻击者可以进行内网主机扫描。

利用xmlrpc.php绕过登录限制

直接POST以下数据到xmlrpc.php

<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
  <methodName>wp.getUsersBlogs</methodName>
  <params>
   <param><value>username</value></param>
   <param><value>password</value></param>
  </params>
</methodCall>

其中username字段是预先收集的用户名。password是尝试的密码

如果密码正确,返回为:
示例1
如果密码错误,返回为:
示例2

解决方法:

方法1

(1)修改xmlrpc.php内容,以使得不响应额外事件

(2)安装三个插件:

【Prevent XMLRPC】作用:禁用XMLRPC

【Remove XMLRPC Pingback Ping】作用:不响应ping

【SEO Redirection】 作用:把http://***.***/xmlrpc.php重新定向到别的网址

方法2

屏蔽 XML-RPC (pingback) 的功能

add_filter('xmlrpc_enabled', '__return_false');

方法3

通过.htaccess屏蔽xmlrpc.php文件的访问或跳转至其他网站

屏蔽xmlrpc.php文件的访问

# 1、限制直接访问
# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

当访问xmlrpc.php文件,让其跳转到其他不存在或者存在的其他页面

# 2、跳转至其他网站
# protect xmlrpc
<IfModule mod_alias.c>
Redirect 301 /xmlrpc.php https://baidu.com/index.html
</IfModule>
发布了20 篇原创文章 · 获赞 1 · 访问量 501

猜你喜欢

转载自blog.csdn.net/sunny_day_day/article/details/105264939