漏洞挖掘 | 通过API接口拿到CNVD证书
字数 1299 2025-08-18 11:35:40

通过Swagger-ui API接口信息泄露漏洞挖掘实战教学

漏洞概述

本教学文档详细分析了一种通过Swagger-ui未授权访问导致的API信息泄露漏洞,该漏洞可进一步导致系统敏感数据泄露。该漏洞属于中高危漏洞(CVSS2.0基准评分超过4.0),符合CNVD通用型漏洞认证标准。

漏洞发现流程

1. 初始信息收集

  • 端口扫描:发现目标开放多个端口(如8083),每个端口基本都提供web服务
  • 网页分析:访问看似空白页面时,通过查看源代码发现关键线索:
    • 检查<title>标签内容
    • 分析引用的JS文件,特别是包含"api"、"env"等关键词的文件

2. Swagger-ui发现

  • 目录扫描:发现存在/swagger-ui路径
  • 技术背景:SpringBoot集成Swagger-ui时若未设置身份验证措施,会导致API文档完全暴露

3. API接口测试

对暴露的Swagger接口进行系统测试,重点关注:

  • 敏感信息泄露接口
  • 任意文件上传功能
  • 其他高危操作接口

漏洞利用过程

1. 初始信息泄露

发现关键API端点:/xx/xx/xx/all

  • 功能:获取所有文件信息
  • 泄露内容:文件系统内所有文件的ID、名称等元数据

2. 深度信息挖掘

发现第二个关键API端点:/xx/xx/xx/{fileId}

  • 功能:根据文件ID获取详细信息
  • 泄露内容:文件存储物理路径、创建时间、文件大小等

3. 敏感数据获取

发现第三个关键API端点:/xx/xx/xx/{fileId}/thumbnail

  • 功能:获取文件缩略图
  • 实际效果:通过此接口可直接访问到用户敏感信息(如身份证图片等)

漏洞验证与报告

1. 通用性验证

  1. 资产搜索:使用FOFA等网络空间测绘引擎,搜索特征body="xxx.com"
  2. 批量验证:从搜索结果中随机选取多个目标验证漏洞存在性
  3. 统计结果:确认漏洞在多个独立系统中存在

2. CNVD认证要求

  • 漏洞等级:中危及中危以上(CVSS2.0基准评分超过4.0)
  • 开发商资质:注册资金≥5000万人民币或涉及重要单位
  • 案例数量:至少10个可复现的网络案例

3. 报告编写要点

  • 清晰描述漏洞发现过程
  • 提供完整的漏洞复现步骤
  • 附上多个独立系统的验证结果
  • 说明漏洞可能造成的实际危害

防御建议

1. Swagger-ui防护措施

  • 生产环境禁用Swagger-ui或添加身份验证
  • 配置访问控制,限制可访问IP范围
  • 修改默认路径,避免被自动化工具扫描

2. API安全加固

  • 实施严格的API权限控制
  • 对敏感操作实施二次验证
  • 记录并监控API访问日志

3. 敏感数据保护

  • 实施数据最小化原则,仅暴露必要信息
  • 对敏感文件实施加密存储
  • 建立完善的文件访问审计机制

总结

本教学详细展示了如何通过Swagger-ui未授权访问漏洞挖掘API信息泄露漏洞的全过程,从初始信息收集到深度利用,再到通用性验证和报告提交。此类漏洞由于SpringBoot的广泛使用而具有较高的通用性,安全研究人员应掌握此类漏洞的挖掘方法,同时开发人员需重视Swagger-ui在生产环境中的安全配置。

通过Swagger-ui API接口信息泄露漏洞挖掘实战教学 漏洞概述 本教学文档详细分析了一种通过Swagger-ui未授权访问导致的API信息泄露漏洞,该漏洞可进一步导致系统敏感数据泄露。该漏洞属于中高危漏洞(CVSS2.0基准评分超过4.0),符合CNVD通用型漏洞认证标准。 漏洞发现流程 1. 初始信息收集 端口扫描 :发现目标开放多个端口(如8083),每个端口基本都提供web服务 网页分析 :访问看似空白页面时,通过查看源代码发现关键线索: 检查 <title> 标签内容 分析引用的JS文件,特别是包含"api"、"env"等关键词的文件 2. Swagger-ui发现 目录扫描 :发现存在 /swagger-ui 路径 技术背景 :SpringBoot集成Swagger-ui时若未设置身份验证措施,会导致API文档完全暴露 3. API接口测试 对暴露的Swagger接口进行系统测试,重点关注: 敏感信息泄露接口 任意文件上传功能 其他高危操作接口 漏洞利用过程 1. 初始信息泄露 发现关键API端点: /xx/xx/xx/all 功能:获取所有文件信息 泄露内容:文件系统内所有文件的ID、名称等元数据 2. 深度信息挖掘 发现第二个关键API端点: /xx/xx/xx/{fileId} 功能:根据文件ID获取详细信息 泄露内容:文件存储物理路径、创建时间、文件大小等 3. 敏感数据获取 发现第三个关键API端点: /xx/xx/xx/{fileId}/thumbnail 功能:获取文件缩略图 实际效果:通过此接口可直接访问到用户敏感信息(如身份证图片等) 漏洞验证与报告 1. 通用性验证 资产搜索 :使用FOFA等网络空间测绘引擎,搜索特征 body="xxx.com" 批量验证 :从搜索结果中随机选取多个目标验证漏洞存在性 统计结果 :确认漏洞在多个独立系统中存在 2. CNVD认证要求 漏洞等级 :中危及中危以上(CVSS2.0基准评分超过4.0) 开发商资质 :注册资金≥5000万人民币或涉及重要单位 案例数量 :至少10个可复现的网络案例 3. 报告编写要点 清晰描述漏洞发现过程 提供完整的漏洞复现步骤 附上多个独立系统的验证结果 说明漏洞可能造成的实际危害 防御建议 1. Swagger-ui防护措施 生产环境禁用Swagger-ui或添加身份验证 配置访问控制,限制可访问IP范围 修改默认路径,避免被自动化工具扫描 2. API安全加固 实施严格的API权限控制 对敏感操作实施二次验证 记录并监控API访问日志 3. 敏感数据保护 实施数据最小化原则,仅暴露必要信息 对敏感文件实施加密存储 建立完善的文件访问审计机制 总结 本教学详细展示了如何通过Swagger-ui未授权访问漏洞挖掘API信息泄露漏洞的全过程,从初始信息收集到深度利用,再到通用性验证和报告提交。此类漏洞由于SpringBoot的广泛使用而具有较高的通用性,安全研究人员应掌握此类漏洞的挖掘方法,同时开发人员需重视Swagger-ui在生产环境中的安全配置。