Swagger(现称OpenAPI)作为API设计和文档工具,若配置不当可能导致API信息泄露,攻击者可借此发现潜在攻击面。
这两天在学spring框架的漏洞,在网上找这种框架时发现某个站点存在Swagger的API泄露
漏洞原理
默认暴露路径:Swagger UI默认通过/swagger-ui.html、/v2/api-docs等路径暴露API文档。
敏感信息泄露:文档可能包含接口参数、认证方式、未保护的API端点等敏感信息。
开发环境配置泄漏:开发调试配置误部署至生产环境,导致调试接口开放。
风险场景
1.攻击者枚举API端点,发起未授权访问或注入攻击。
2.暴露内部接口结构,辅助逆向工程。
3.泄露接口参数格式,辅助构造恶意请求。
漏洞检测方法
1.手动验证:
curl http://目标域名/swagger-ui.html
curl http://目标域名/v3/api-docs
若返回Swag泄露ger UI界面或JSON数据,则存在泄露。
2.自动化扫描:
使用Burp Suite、OWASP ZAP扫描API路径。
工具如Nuclei检测Swagger端点:
nuclei -t exposures/apis/swagger-api.yaml -u 目标URL