couchdb的实现(couchdb查询语句)

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

今天我就来和大家聊聊如何分析CouchDB漏洞,可能很多人都不太了解。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。

0x00文档信息

Apache CouchDB是一个开源数据库,注重易用性,成为一个“完全包含web的数据库”[1]。它是一个以JSON为存储格式,JavaScript为查询语言,MapReduce和HTTP为API的NoSQL数据库。广泛使用,比如BBC用在其动态内容展示平台,瑞士瑞信银行用在其内部市场框架的商品部,Meebo用在其社交平台(web和应用)。

2017年11月15日,CVE-2017-12635、CVE-2017-12636披露,CouchDB暴露了远程代码执行的问题。对CVE-2017-12636的任意处决命令早在2016年就已披露,但并未引起关注。

00-1010 CVE-2017-12635是由于Erlang和JavaScript对JSON的解析方式不同导致的句子执行差异。非管理员用户可以使用它来授予自己管理员身份权限。

在CVE-2017-12636中,由于数据库本身的设计,管理员可以通过HTTP(S)配置数据库。在某些配置中,您可以设置可执行文件的路径,并在数据库操作的范围内执行它。结合CVE-2017-12635,可以实现远程代码执行。

0x02 漏洞分析

CVE-2017-12635的问题是Erlang和JavaScript在JSON中处理重复键的方式不同,比如{“A”:“1”“A”3360“2”},

二郎:

如何进行CouchDB漏洞的分析

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

如何进行CouchDB漏洞的分析

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

检查jiffy解析器的源代码,找到patch:

如何进行CouchDB漏洞的分析

如何进行CouchDB漏洞的分析

找到补丁后,添加了dedupe_keys字段来标识重复的密钥,并重写了make_object方法,使得jiffy解析JSON的方法与JavaScript一致。

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

如何进行CouchDB漏洞的分析

可以通过简单的概念验证来验证:

如何进行CouchDB漏洞的分析

更改query_servers的配置,创建临时表,并调用query_servers处理数据。通过这种方式,可以执行shell并在指定的/tmp/6668文件中写入ifconfig信息。

这样,利用之前的CVE-2017-12365权限升级漏洞,可以实现远程代码执行:

如何进行CouchDB漏洞的分析

0x03 全网影响

根据360CERT全网资产检索平台的实时显示,外网共开放了4943项CouchDB服务,主要在美国。

如何进行CouchDB漏洞的分析

如何进行CouchDB漏洞的分析

国内统计主要集中在广东和北京。

如何进行CouchDB漏洞的分析

0x04 修复建议

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

2.配置HTTP API配置参数和黑名单敏感配置信息。

看完以上内容,你对如何分析CouchDB漏洞有更好的理解吗?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155660.html

(0)

相关推荐

  • 1.3 保留最后N个元素

    技术1.3 保留最后N个元素 1.3 保留最后N个元素在迭代操作时,怎样只保留最后有限几个元素的历史记录问题描述
    在迭代操作时,怎样只保留最后有限几个元素的历史记录
    解决方案
    数据结构:collecti

    礼包 2021年12月9日
  • 映射ADO.NET如何设置参数

    技术映射ADO.NET如何设置参数这篇文章主要为大家展示了“映射ADO.NET如何设置参数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“映射ADO.NET如何设置参数”这篇文

    攻略 2021年12月1日
  • Mysql怎样查看数据库大小

    技术Mysql怎样查看数据库大小这篇文章给大家介绍Mysql怎样查看数据库大小,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1 命令行进入数据库[root@80 ~]# mysql -uroot -

    攻略 2021年10月25日
  • 中国四大吝啬鬼,四大吝啬鬼的资料50字

    技术中国四大吝啬鬼,四大吝啬鬼的资料50字分别是英国莎士比亚喜剧《威尼斯商人》中的夏洛克中国四大吝啬鬼;法国莫里哀喜剧《悭吝人》(《吝啬鬼》)里的阿巴贡;法国巴尔扎克小说《欧也妮•葛朗台》中的葛朗台;俄国果戈理小说《死魂

    生活 2021年10月25日
  • ABAP如何显示表字段和描述

    技术ABAP如何显示表字段和描述这篇文章将为大家详细讲解有关ABAP如何显示表字段和描述,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。显示表字段和描述REPORT ZWT.TABLES

    攻略 2021年11月18日
  • 腊肠炒饭,什么食物搭配蛋炒饭会好吃到爆

    技术腊肠炒饭,什么食物搭配蛋炒饭会好吃到爆来个高逼格的什锦芝士焗饭吧腊肠炒饭,简单地说就是蛋炒饭上铺一层芝士,然后微波炉一加热,丝丝香甜的芝士焗饭就做好了哦所需材料:米饭,香肠,白玉菇(可放可不放),土豆,玉米粒少许,马

    生活 2021年10月30日