couchdb垂直越权漏洞复现
2022-03-12 13:57:43
couchdb 垂直越权漏洞(CVE-2017-12635)复现
漏洞前言
简介
CouchDB 是一个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。术语 “Couch” 是 “Cluster Of Unreliable Commodity Hardware” 的首字母缩写,它反映了 CouchDB 的目标具有高度可伸缩性,提供了高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。
漏洞原理
CVE-2017-12635是由于Erlang和JavaScript对JSON解析方式的不同,导致语句执行产生差异性导致的。这个漏洞可以让任意用户创建管理员,属于垂直权限绕过漏洞。
影响版本
- 小于 1.7.0 以及 小于 2.1.1
漏洞环境搭建
vulhub拉取漏洞环境docker启动
1 | docker-compose up -d |
后访问 http://ip:5984,界面如下:
漏洞利用
我们打开这个界面后并不知道账号密码,无法登陆。构建一个创造用户的数据包,用put请求发送。
发现并不可以直接创建,因为没有admin权限,所以会报错。
如果在其中加入Content-Type: application/json,就可以成功绕过role验证。
payload
1 | PUT http://ip/_users/org.couchdb.user:password HTTP/1.1 |
创建成功,可以同时创建多个用户,但重复发包会爆409错误。
最后用自己创建的账号即可成功登陆后台。