CVE-2020-29436:Nexus3 XML注入漏洞复现与exploit

需积分: 0 0 下载量 147 浏览量 更新于2024-08-05 收藏 276KB PDF 举报
本文档主要关注的是CVE-2020-29436,这是一个针对NexusRepositoryManager 3的严重安全漏洞,涉及XML外部实体注入(XXE)攻击。NexusRepositoryManager 3是一款流行的软件包仓库管理系统,提供通用的存储和管理功能。该漏洞存在于/service/rest/internal/ui/saml接口,攻击者能够利用这个接口中的设计缺陷,加载外部DTD(文档类型定义),进而执行恶意代码或泄露敏感信息。 漏洞的核心是通过构造恶意XML请求,迫使服务解析包含外部实体引用的XML数据,这可能导致远程代码执行或数据泄露,尤其是在管理员权限下。影响范围包括所有低于3.28.1版本的NexusRepositoryManager 3实例。 为了复现此漏洞,作者提供了详细的步骤指导,包括以下关键环节: 1. **环境准备**:确保使用JDK 1.8及以上版本,并从官方下载NexusRepositoryManager 3.28.1。由于默认密码不可用,需要下载并安装Pro版本,同时强调了在某些步骤中可能需要使用特定浏览器(如Firefox)。 2. **启动服务**:在本地运行nexus.exe/run,确认服务成功启动,通过访问管理后台进行登录。 3. **漏洞利用**:登录后尝试访问/admin/security/saml,同时开启一个Python http服务作为代理,以拦截和修改恶意请求。攻击者需要构造包含恶意DTD引用的XML payload,通过代理发送到该接口。 4. **证书安装**:为了访问Pro版本的功能,需要安装Sonatype提供的证书文件,以升级到Pro版本并重启服务。 5. **漏洞验证**:复现成功后,可以通过访问特定URL来检测漏洞是否被触发,以及系统的响应。 本文档对于理解和防御类似CVE-2020-29436这样的XML外部实体注入漏洞提供了实用的指南,对IT安全专业人员和系统管理员来说具有很高的参考价值。务必注意,未经授权的攻击行为将触犯法律,因此在任何情况下都应遵循合法和道德原则来操作。