CVE-2024-23897(春秋云镜)

一、声明

我很乐意提供有关渗透测试的信息,但我必须强调,渗透测试是一项合法且专业的活动,必须在适当的授权和监督下进行。渗透测试是为了评估计算机系统、网络或应用程序的安全性,以发现潜在的漏洞和弱点,并提出改进建议。渗透测试需要专业的技能和严格的合规性,以确保不会对系统的安全性造成负面影响。

在进行渗透测试时,请务必遵守以下原则:

合法性:只在获得明确授权的情况下进行渗透测试,不要未经授权地访问、测试或侵入他人的系统。

透明度:在进行渗透测试之前,向相关方明确说明测试的目的、范围、时间和方法,并获得他们的书面同意。

谨慎性:在进行渗透测试时,务必谨慎行事,避免对系统造成不可挽回的损坏或数据泄露。

保密性:在进行渗透测试时,必须严格遵守保密协议,不得将测试结果泄露给未经授权的人员或机构。

遵守法律:在进行渗透测试时,必须遵守当地和国际法律法规,不得从事任何非法活动。

总之,渗透测试是一项高度专业和敏感的活动,必须由经验丰富的专业人士在合适的环境和条件下进行。任何未经授权或违法的渗透测试行为都是不道德且不可接受的。

、靶场介绍

Jenkins 2.441及更早版本,以及LTS 2.426.2及更早版本没有禁用其CLI命令解析器的一个功能,该功能会将参数中’@'字符后跟的文件路径替换为该文件的内容,允许未经身份验证的攻击者读取Jenkins控制器文件系统上的任意文件。

三、关于Jenkins

Jenkins[ˈdʒɛŋkɪnz](百度百科):一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

Jenkins漏洞原理

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

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

PHP5.5以前,设置POST参数时,如果传入的参数值是@开头,则也会被认为是文件名,并读取该文件,造成文件读取漏洞。在PHP 5.5以后增加了CURLOPT_SAFE_UPLOAD选项并默认为true,用以杜绝这个问题:https://t.zsxq.com/YVbIYny

回到Jenkins,因为Jenkins是在服务端解析的命令行参数,又支持args4j的这个特性,所以造成文件读取漏洞。

要调试该漏洞,只需在Jenkins启动时设置一个环境变量“DEBUG=1”,即可开启JVM的远程调试端口。如果使用Vulhub环境,直接连接5005端口进行远程调试

转载自:https://cloud.tencent.com/developer/article/2384213

CVE-2024-23897漏洞的利用有下面两个比较核心的限制:

1、是否开启“匿名用户可读”选项 --->  影响攻击者是否能够读取文件的全文

2、服务端字符集是否兼容读取二进制文件--->  影响攻击者是否能够伪造任意用户的remember-me Cookie

四、靶场解题

1、开启靶场

2、根据前面的知识介绍,这里利用一个比较简便的方法,就是直接下载编译好的二进制 文件,我下载的是Windows版本的(从github上面去获取,其他版本的也有)。

https://github.com/wjlin0/CVE-2024-23897/releases/download/v1.0.1/CVE-2024-23897_1.0.1_windows_amd64.zip

3、下载好解压之后得到如下文件:

4、在文件位置终端,输入命令:

CVE-2024-23897.exe -u http://101.200.139.65:28725/ -a  /flag

5、提交Flag。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sinat_25635183

你们的鼓励,是我的彩虹。

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

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

打赏作者

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

抵扣说明:

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

余额充值