近日,安全研究人员发现了 Sonatype Nexus Repository 的一处严重漏洞,被标记为 CVE-2024-4956。这个漏洞与早前的 CVE-2018-1271 引发的 SpringMVC 漏洞有着惊人的相似之处,让人们不禁感叹网络安全的演进与循环。
漏洞背景
CVE-2024-4956 涉及 Sonatype Nexus Repository,一款用于管理存储库的软件。该漏洞存在于其处理路径的方式上,攻击者可以通过精心构造的路径请求访问系统文件,导致信息泄露甚至服务器完全被控制的风险。
漏洞分析
与 CVE-2018-1271 类似,Nexus 使用的 Jetty 的 URIUtil.canonicalPath() 函数将空字符串视为合法目录,因此攻击者可以构造类似于 ///../../../ 这样的路径请求,绕过路径检查,达到目录穿越的目的。
漏洞复现
为了更直观地理解这个漏洞,让我们来看一个简单的 PoC:
GET /%2F%2F%2F%2F%2F%2F%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswdbr
这个请求中使用了多个 %2F,绕过了路径检查,最终成功读取到系统文件。
漏洞环境搭建
想要进一步了解这个漏洞,你可以在 Vulhub 上找到对应的漏洞环境,并使用提供的 Docker 命令启动 Nexus Repository Manager 版本为 3.68.0 的服务器。然后,使用上述 PoC 发送请求来复现漏洞。
https://github.com/vulhub/vulhub/tree/master/nexus/CVE-2024-4956
总结
CVE-2024-4956 的发现让人们再次关注起目录穿越漏洞的问题。与之前的 CVE-2018-1271 相比,虽然涉及的软件不同,但漏洞的本质却是相似的。
原文始发于微信公众号(云梦安全):揭秘Sonatype Nexus目录穿越漏洞CVE-2024-4956:与CVE-2018-1271的惊人相似之处
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论