漏洞复现
Vulhub-漏洞环境搭建
1panel
Bash
Tomcat
Siro框架漏洞
Apache Struts2
Apache 中间件
ThinkPHP框架漏洞
MySQL写入shell
Redis
MySQL提权
Fastjson反序列化漏洞
Spring
Jenkins
WebLogic
-
+
首页
Jenkins
 ## 概述 Jenkins 是一款开源的自动化 CI/CD 工具(CI:持续集成,CD:持续部署 / 交付),核心作用是通过自动化流程替代软件开发中的手动操作(如代码编译、测试、打包、部署),帮助团队高效、稳定地交付软件,是 DevOps(开发与运维协同)体系中的核心工具之一。 Jenkins 的核心价值就是: - 自动化串联全流程:从代码提交(如 Git 提交)触发,自动完成 “编译→测试→打包→部署” 全链路操作; - 标准化环境与流程:确保所有团队成员使用一致的构建 / 测试环境,避免 “本地能跑、线上报错” 的问题; - 实时反馈问题:一旦代码编译失败、测试不通过,立即通知开发人员,提前拦截问题,避免问题流入生产环境。 ## CLI 接口任意文件读取漏洞(CVE-2024-23897) ### 漏洞描述 CVE-2024-23897 是 Jenkins CI/CD 系统中存在的一个未授权任意文件读取漏洞,其核心风险在于攻击者可通过构造恶意请求直接获取 Jenkins 控制器文件系统上的敏感信息,甚至可能引发远程代码执行(RCE)。 ### 漏洞版本 Jenkins 版本<= 2.441 Jenkins 版本<= LTS 2.426.2 ### 漏洞原理 Jenkins文件读取漏洞的原理是args4j在解析命令行的时候会把@后面的字符作为文件名,并读取文件内容作为参数的值。 Jenkins提供了一个命令行的接口,用户可以下载一个命令行客户端jenkins-cli.jar到本地,并调用该客户端来执行一些Jenkins的功能。 值得注意的是用户使用jenkins-cli.jar时,命令行是传到服务端解析的,而不是在jenkins-cli.jar里解析。 Jenkins服务端解析命令行时使用了一个第三方库[args4j](https://github.com/kohsuke/args4j),这个库实现了Linux中一个常见的功能——如果一个参数是以@开头,则会被自动认为是一个文件名,文件内容会被作为参数进行读取。 因为Jenkins是在服务端解析的命令行参数,又支持args4j的这个特性,所以造成文件读取漏洞。 > 如何将读取文件的文件内容返回给攻击者呢? 作为攻击者,必须想办法让Jenkins或args4j,将读到的文件内容返回给我们,才能最终达到任意文件读取的目的。 当我们调用命令行时,如果出错,args4j就会把错误返回给客户端,而错误信息中就包含文件的内容。 ### 漏洞复现 1、启动容器:  2、访问靶机:  3、下载 CLI 客户端: CLI 客户端可以直接在URL /jnlpJars/jenkins-cli.jar从Jenkins主机下载。 ```url https://JENKINS_URL/jnlpJars/jenkins-cli.jar http://192.168.1.4:8080/jnlpJars/jenkins-cli.jar ``` 一般使用语法: ```cmd java -jar jenkins-cli.jar [-s JENKINS_URL] [global options...] command [command options...] [arguments...] ``` 4、Jenkins敏感文件 | 目录 | 描述 | | --------------------------------- | ------------------------------------ | | /var/jenkins_home | 数据根目录 | | /var/jenkins_home/users/users.xml | 用户列表和每个用户信息所在的文件目录 | 5、尝试进行读取: ```cmd java -jar jenkins-cli.jar -s http://localhost:8080/ connect-node "/var/jenkins_home/users/users.xml" ``` 如果Jenkins开启了“匿名用户可读”选项,则大部分命令都可以被调用,其中包括connect-node命令和reload-job命令,这两个命令可以用来读取文件全部内容。 漏洞详细分析,看看这篇文章:https://www.leavesongs.com/PENETRATION/jenkins-cve-2024-23897.html
毛林
2025年11月1日 14:20
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码