CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

栏目: 数据库 · 发布时间: 7年前

内容简介:建议大家在看本文之前先去回顾一下我之前发表过的一篇关于CouchDB的文章,其中简单介绍了一些关于CouchDB的基本信息和本次所发布的CouchDB RCE(before 1.7.0 and 2.x before 2.1.1CouchDB是使用Erlang开发的面向文档的数据库系统,其Json解析器使用了

背景介绍

建议大家在看本文之前先去回顾一下我之前发表过的一篇关于CouchDB的文章,其中简单介绍了一些关于CouchDB的基本信息和本次所发布的CouchDB RCE( CVE-2017-12636 )漏洞。是的,关于这个RCE并不是CouchDB的一个新问题,只是在此次这个特权提升漏洞出来的同时才给了RCE漏洞CVE号,因为之前RCE只有在CouchDB管理员密码泄露或未授权访问时才能进行,本文将着重分析特权提升( CVE-2017-12635 )漏洞。

影响版本

before 1.7.0 and 2.x before 2.1.1

漏洞分析

CouchDB是使用Erlang开发的面向文档的数据库系统,其Json解析器使用了 jiffy第三方库 ,他和javascript在解析Json上存在一些差异,我们看下面这个例子

Erlang:

CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

Javascript:

CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

我们可以看到这两个解析器对于存在重复键的Json数据的解析结果有着很大的差异。对于给定的键,Javascript只存储了最后一个值,而Erlang却存储了所有的值。但是在CouchDB中get_value函数只返回了jiffy所解析到了第一个键的值。

CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

对于这样的差异性就会产生很大的安全风险,接着看一下CouchDB中是如何进行用户身份鉴权的

CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

其中可以看到关于roles中定义了普通用户是无法设置管理员角色 roles 的,但管理员可以任意定义其他用户,我们再来看以下这段包含文件代码

CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

这里的权限判断很简单,只要roles长度大于0就返回forbidden,只有管理员才能进行修改,言外之意就是只要roles为空,就可以自己设置自己的信息,这和以上对users的权限定义一致,也和正常的member用户注册逻辑一致

CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

但是结合之前Erlang和Javascript对重复键Json解析的差异性,我们就可以构造roles重复键使得javascript解析阶段roles为空来绕过上述鉴权,并在导入document,Erlang进行解析时roles为 _admin 来创建管理员用户达到特权提升的目的,POC如下

CVE-2017-12635 Apache CouchDB 特权提升漏洞分析

如此我们就完成了特权提升攻击而获得了一个管理员账号,此时就可以进行远程命令执行攻击了,关于这一部分大家可以看我之前的文章。

漏洞防御

升级CouchDB至最新版

可以通过以下两条命令查看是否已经被攻击

curl -s 'admin:password@127.0.0.1:5984/_users/_all_docs?include_docs=true' | grep -E '"roles".+"roles"'
curl -s 'admin:password@127.0.0.1:5984/_users/_all_docs?include_docs=true' | grep -E '"_replication_state".+"_replication_state"'

参考

Apache CouchDB CVE-2017-12635 and CVE-2017-12636


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大连接

大连接

[美] 尼古拉斯•克里斯塔基斯(Nicholas A. Christakis)、[美] 詹姆斯•富勒(James H. Fowler) / 简学 / 中国人民大学出版社 / 2013-1 / 59.90元

[内容简介] 1. 本书是继《六度分隔》之后,社会科学领域最重要的作品。作者发现:相距三度之内是强连接,强连接可以引发行为;相聚超过三度是弱连接,弱连接只能传递信息。 2. 本书讲述了社会网络是如何形成的以及对人类现实行为的影响,如对人类的情绪、亲密关系、健康、经济的运行和政治的影响等,并特别指出,三度影响力(即朋友的朋友的朋友也能影响到你)是社会化网络的强连接原则,决定着社会化网络的......一起来看看 《大连接》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试