记一次安服仔薅洞实战(lucky)
字数 1487 2025-08-09 18:44:09

记一次安服仔薅薅洞实战(Lucky) 技术解析与教学

前言

本文基于奇安信攻防社区《记一次安服仔薅薅洞实战(Lucky)》的技术分享,将详细解析其中涉及的安全测试技术和方法,帮助安全服务人员提升实战能力。

1. 信息收集阶段

1.1 目标识别

  • 确定目标系统为某企业Web应用
  • 初步判断系统架构:Java Web应用(基于URL特征)

1.2 资产发现

  • 使用子域名爆破工具(如subfinder、amass)发现相关资产
  • 端口扫描(nmap/masscan)识别开放服务
  • 重点关注:80/443端口Web服务,8080/8443管理端口

1.3 指纹识别

  • 使用Wappalyzer/WhatWeb识别Web框架和组件
  • 识别出Spring Boot框架特征
  • 发现存在Swagger UI接口文档

2. 漏洞探测阶段

2.1 API接口分析

  • 通过Swagger UI发现多个API端点
  • 重点关注:
    • /api/user/login 用户登录接口
    • /api/user/info 用户信息查询接口
    • /api/admin/** 管理员接口

2.2 认证绕过测试

  • 发现JWT认证机制
  • 测试JWT篡改可能性:
    • 修改算法为"none"
    • 密钥爆破测试
    • 签名移除测试
  • 发现系统未验证JWT签名,可构造任意token

2.3 水平越权测试

  • 通过修改用户ID参数访问其他用户信息
  • 构造请求:
GET /api/user/info?id=2 HTTP/1.1
Authorization: Bearer [任意构造的JWT]
  • 成功获取其他用户敏感信息

2.4 垂直越权测试

  • 尝试访问管理员接口:
GET /api/admin/users HTTP/1.1
Authorization: Bearer [构造的admin权限JWT]
  • 成功获取所有用户列表

3. 漏洞利用阶段

3.1 数据泄露利用

  • 通过越权接口获取:
    • 用户手机号、邮箱等PII信息
    • 系统内部配置信息
    • 数据库连接信息(部分系统配置中泄露)

3.2 权限提升

  • 发现数据库连接信息后:
    • 尝试外连数据库
    • 使用默认/弱密码成功连接
    • 直接修改用户权限字段

3.3 持久化访问

  • 创建高权限后门账户
  • 上传Webshell(发现存在文件上传功能)
  • 建立SSH隧道(发现服务器SSH端口开放)

4. 漏洞修复建议

4.1 JWT安全加固

  • 强制验证JWT签名
  • 使用强密钥(HS256/RS256)
  • 设置合理的token过期时间
  • 实现token黑名单机制

4.2 权限控制优化

  • 实现严格的RBAC模型
  • 服务端校验用户权限
  • 接口级别访问控制
  • 敏感操作二次认证

4.3 数据保护措施

  • 敏感信息脱敏
  • 最小化数据返回原则
  • 实施数据访问日志审计

4.4 其他安全建议

  • 关闭调试接口(如Swagger UI)
  • 加强数据库访问控制
  • 定期安全审计和渗透测试

5. 经验总结

  1. 信息收集是关键:全面的资产发现往往能暴露更多攻击面
  2. 不要忽视API安全:现代Web应用API往往是安全薄弱点
  3. 认证机制要完整:JWT等机制配置不当会导致严重漏洞
  4. 最小权限原则:所有接口都应实施严格的权限控制
  5. 纵深防御:单一防线被突破后应有其他防护措施

6. 工具推荐

  1. 信息收集

    • Subfinder
    • Amass
    • Nmap
  2. API测试

    • Postman
    • Burp Suite
    • Swagger UI
  3. JWT测试

    • jwt_tool
    • Burp JWT插件
  4. 漏洞利用

    • SQLMap
    • Metasploit
    • Webshell管理工具

7. 学习资源

  1. OWASP API Security Top 10
  2. JWT官方安全规范(RFC 7519)
  3. Spring Security最佳实践
  4. 奇安信攻防社区其他相关案例

通过本案例的学习,安全服务人员可以掌握从信息收集到漏洞利用的完整流程,特别关注API安全和认证机制方面的测试方法,提升在实际工作中的漏洞发现能力。

记一次安服仔薅薅洞实战(Lucky) 技术解析与教学 前言 本文基于奇安信攻防社区《记一次安服仔薅薅洞实战(Lucky)》的技术分享,将详细解析其中涉及的安全测试技术和方法,帮助安全服务人员提升实战能力。 1. 信息收集阶段 1.1 目标识别 确定目标系统为某企业Web应用 初步判断系统架构:Java Web应用(基于URL特征) 1.2 资产发现 使用子域名爆破工具(如subfinder、amass)发现相关资产 端口扫描(nmap/masscan)识别开放服务 重点关注:80/443端口Web服务,8080/8443管理端口 1.3 指纹识别 使用Wappalyzer/WhatWeb识别Web框架和组件 识别出Spring Boot框架特征 发现存在Swagger UI接口文档 2. 漏洞探测阶段 2.1 API接口分析 通过Swagger UI发现多个API端点 重点关注: /api/user/login 用户登录接口 /api/user/info 用户信息查询接口 /api/admin/** 管理员接口 2.2 认证绕过测试 发现JWT认证机制 测试JWT篡改可能性: 修改算法为"none" 密钥爆破测试 签名移除测试 发现系统未验证JWT签名,可构造任意token 2.3 水平越权测试 通过修改用户ID参数访问其他用户信息 构造请求: 成功获取其他用户敏感信息 2.4 垂直越权测试 尝试访问管理员接口: 成功获取所有用户列表 3. 漏洞利用阶段 3.1 数据泄露利用 通过越权接口获取: 用户手机号、邮箱等PII信息 系统内部配置信息 数据库连接信息(部分系统配置中泄露) 3.2 权限提升 发现数据库连接信息后: 尝试外连数据库 使用默认/弱密码成功连接 直接修改用户权限字段 3.3 持久化访问 创建高权限后门账户 上传Webshell(发现存在文件上传功能) 建立SSH隧道(发现服务器SSH端口开放) 4. 漏洞修复建议 4.1 JWT安全加固 强制验证JWT签名 使用强密钥(HS256/RS256) 设置合理的token过期时间 实现token黑名单机制 4.2 权限控制优化 实现严格的RBAC模型 服务端校验用户权限 接口级别访问控制 敏感操作二次认证 4.3 数据保护措施 敏感信息脱敏 最小化数据返回原则 实施数据访问日志审计 4.4 其他安全建议 关闭调试接口(如Swagger UI) 加强数据库访问控制 定期安全审计和渗透测试 5. 经验总结 信息收集是关键 :全面的资产发现往往能暴露更多攻击面 不要忽视API安全 :现代Web应用API往往是安全薄弱点 认证机制要完整 :JWT等机制配置不当会导致严重漏洞 最小权限原则 :所有接口都应实施严格的权限控制 纵深防御 :单一防线被突破后应有其他防护措施 6. 工具推荐 信息收集 : Subfinder Amass Nmap API测试 : Postman Burp Suite Swagger UI JWT测试 : jwt_ tool Burp JWT插件 漏洞利用 : SQLMap Metasploit Webshell管理工具 7. 学习资源 OWASP API Security Top 10 JWT官方安全规范(RFC 7519) Spring Security最佳实践 奇安信攻防社区其他相关案例 通过本案例的学习,安全服务人员可以掌握从信息收集到漏洞利用的完整流程,特别关注API安全和认证机制方面的测试方法,提升在实际工作中的漏洞发现能力。