千家信息网

如何进行CouchDB漏洞的分析

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,今天就跟大家聊聊有关如何进行CouchDB漏洞的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。0x00 文档信息Apache CouchD
千家信息网最后更新 2025年12月02日如何进行CouchDB漏洞的分析

今天就跟大家聊聊有关如何进行CouchDB漏洞的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

0x00 文档信息


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

在2017年11月15日,CVE-2017-12635和CVE-2017-12636披露,CouchDB被曝存在远程代码执行的问题。其中CVE-2017-12636的任意命令执行早在2016年即被披露,但并未引起重视。

0x01 漏洞概述


CVE-2017-12635是由于Erlang和JavaScript对JSON解析方式的不同,导致语句执行产生差异性导致的。可以被利用于,非管理员用户赋予自身管理员身份权限。

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

0x02 漏洞分析


CVE-2017-12635问题在于Erlang和JavaScript对JSON中重复的键处理方式具有差异性,例如{"a":"1","a":"2"},

Erlang:

对于给定的键,Eralang解析器将存储两个值,但是JavaScript只存储第二个值。但是在jiffy实现的时候,getter函数只返回第一个值。

除了输入验证脚本之外,几乎所有关于身份验证和授权的重要逻辑都发生在CouchDB的Erlang部分,所以这样可以使当前用户赋予"_admin"身份。

查看jiffy解析器源码,定位到patch:

可以发现patch后,加入了dedupe_keys字段用于对重复键的标识,重写了make_object方法,使得jiffy解析JSON的方法和JavaScript一致。

而CVE-2017-12636漏洞在于CouchDB自身的设计问题,CouchDB允许外部通过自身HTTP(S) API对配置文件进行更改,一些配置选项包括操作系统级二进制文件的路径,随后会由CouchDB启动。从这里获取shell通常很简单,因为CouchDB其中一个"query_servers"选项,可以自定义语言,这个功能基本上只是一个包装execv。

可以构造简单的POC进行验证:

更改query_servers配置,创建个临时表,调用query_servers处理数据。这样便可以执行shell,在规定的/tmp/6668文件中,写入ifconfig信息。

这样配合之前的CVE-2017-12365权限提升漏洞,实现远程代码执行:

0x03 全网影响


根据360CERT全网资产检索平台实时显示,共有4943台CouchDB服务在外网开放,以美国占量为主

国内统计以广东,北京占量为主

0x04 修复建议


1、所有用户都应升级到CouchDB 1.7.1或 2.1.1。

2、配置HTTP API配置参数,针对敏感配置信息加入黑名单。

看完上述内容,你们对如何进行CouchDB漏洞的分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

配置 数据 漏洞 数据库 内容 文件 身份 分析 代码 信息 平台 方式 用户 管理员 问题 存储 管理 验证 全网 差异 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏信息软件开发代理品牌 网络安全比赛11月2019 下列属于数据库的物理独立性 黄浦区品牌软件开发服务保障 网络安全高科技企业 数据库技术及应用题及答案 宿迁创新软件开发常见问题 我们作为大学生怎样注意网络安全 起一个好队名 软件开发 服务器io测试 同城交友社交软件开发说明 日本网络技术不高 计算机网络技术文科与理科区别 如何胜任数据库工程师 新药研发管理中国软件开发 枣庄网络时间服务器同步时出错 网络安全会议记录活动效果 美国谷歌的软件开发工资 数据库要check约束生日 mcpe服务器插件 淮北工程管理软件开发费用 软件开发系统集成费用 软件开发用什么品牌笔记本 静安区全过程网络技术咨询哪家好 抓蜂窝网络安全海报 兰州网络安全大赛 如何胜任数据库工程师 网络安全 四进 活动 嘉定区通用软件开发试验设备 6g网络技术创世纪愿景
0