API安全漏洞靶场crapi的基本介绍与解题思路
字数 1582 2025-08-26 22:11:35
API安全漏洞靶场crapi教学文档
1. 概述
crapi是一个专门设计用于学习和实践API安全性的漏洞靶场,模拟了一个车主注册和管理车辆的平台。该靶场包含了OWASP API TOP 10中的主要漏洞类型,包括:
- 失效的对象级别授权漏洞
- 失效的用户身份验证漏洞
- 过多的数据暴露漏洞
- 速率限制漏洞
- 失效的功能级别授权
- 批量分配
- SSRF
- 注入
- 未经身份验证的访问漏洞
2. 环境搭建
2.1 系统要求
- Docker最新版本(低版本可能导致配置失败)
- Docker Compose
2.2 安装步骤
curl -o docker-compose.yml https://raw.githubusercontent.com/OWASP/crAPI/develop/deploy/docker/docker-compose.yml
docker-compose pull
docker-compose -f docker-compose.yml --compatibility up -d
安装完成后,访问http://localhost:8888即可使用。
3. 漏洞挑战与解题思路
3.1 失效的对象级别授权漏洞
挑战1:访问其他用户车辆的详细信息
漏洞原理:API依赖用户请求参数中的对象ID来决定访问目标对象,未验证请求者是否有权访问该对象。
解题步骤:
- 找到接受车辆GUID的API端点:
/identity/api/v2/vehicle/{GUID}/location - 通过社区API获取其他用户的GUID:
/community/api/v2/community/posts/recent - 替换GUID值重放请求,获取其他用户车辆信息
挑战2:访问其他用户的机械报告
解题步骤:
- 点击"Contact Mechanic"提交报告
- 抓包获取报告链接
- 修改报告ID值访问其他用户的维修报告
3.2 失效的用户身份验证
挑战3:重置其他用户的密码
漏洞原理:身份验证机制实现存在漏洞,允许攻击者暴力破解OTP。
解题步骤:
- 通过社区API获取其他用户邮箱:
/community/api/v2/community/posts/recent - 在忘记密码页面输入目标邮箱
- 拦截检查OTP的API请求:
/identity/api/auth/v3/check-otp - 使用Burp Suite暴力破解OTP
- 成功后可重置目标用户密码
3.3 过多的数据暴露
挑战4:找到泄露其他用户敏感信息的API端点
漏洞原理:API返回了不应暴露给用户的敏感信息。
解题方法:
- 检查社区API端点:
/community/api/v2/community/posts/recent
挑战5:找到泄露视频内部属性的API端点
解题方法:
- 在个人信息页面上传视频
- 发现视频API端点:
/identity/api/v2/user/videos/{id} - 该端点可能泄露视频内部属性
3.4 速率限制漏洞
挑战6:使用"联系技工"功能执行第7层DoS攻击
漏洞原理:API未对请求频率和数量进行限制。
解题步骤:
- 找到相关API端点
- 修改请求参数:
- 将
repeat_request_if_failed设为true - 将
number_of_repeats设为极大值
- 将
- 重放请求实现DoS攻击
3.5 失效的功能级别授权
挑战7:删除另一个用户的视频
漏洞原理:API未验证用户是否有权执行特定操作。
解题步骤:
- 通过修改视频名称发现API端点:
/identity/api/v2/user/videos/{id} - 使用Burp Intruder测试不同HTTP方法
- 发现DELETE方法可用
- 将URL中的
user改为admin:/identity/api/v2/admin/videos/{id} - 发送DELETE请求成功删除视频
4. 总结
crapi靶场提供了全面的API安全漏洞实践环境,通过解决这些挑战可以深入理解:
- API安全的核心问题
- OWASP API TOP 10漏洞的实际表现
- 漏洞利用的基本技术
- API安全测试的基本方法
建议按照挑战顺序逐步练习,理解每种漏洞的原理和利用方法,从而提升API安全测试能力。