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来决定访问目标对象,未验证请求者是否有权访问该对象。

解题步骤

  1. 找到接受车辆GUID的API端点:/identity/api/v2/vehicle/{GUID}/location
  2. 通过社区API获取其他用户的GUID:/community/api/v2/community/posts/recent
  3. 替换GUID值重放请求,获取其他用户车辆信息

挑战2:访问其他用户的机械报告

解题步骤

  1. 点击"Contact Mechanic"提交报告
  2. 抓包获取报告链接
  3. 修改报告ID值访问其他用户的维修报告

3.2 失效的用户身份验证

挑战3:重置其他用户的密码

漏洞原理:身份验证机制实现存在漏洞,允许攻击者暴力破解OTP。

解题步骤

  1. 通过社区API获取其他用户邮箱:/community/api/v2/community/posts/recent
  2. 在忘记密码页面输入目标邮箱
  3. 拦截检查OTP的API请求:/identity/api/auth/v3/check-otp
  4. 使用Burp Suite暴力破解OTP
  5. 成功后可重置目标用户密码

3.3 过多的数据暴露

挑战4:找到泄露其他用户敏感信息的API端点

漏洞原理:API返回了不应暴露给用户的敏感信息。

解题方法

  • 检查社区API端点:/community/api/v2/community/posts/recent

挑战5:找到泄露视频内部属性的API端点

解题方法

  1. 在个人信息页面上传视频
  2. 发现视频API端点:/identity/api/v2/user/videos/{id}
  3. 该端点可能泄露视频内部属性

3.4 速率限制漏洞

挑战6:使用"联系技工"功能执行第7层DoS攻击

漏洞原理:API未对请求频率和数量进行限制。

解题步骤

  1. 找到相关API端点
  2. 修改请求参数:
    • repeat_request_if_failed设为true
    • number_of_repeats设为极大值
  3. 重放请求实现DoS攻击

3.5 失效的功能级别授权

挑战7:删除另一个用户的视频

漏洞原理:API未验证用户是否有权执行特定操作。

解题步骤

  1. 通过修改视频名称发现API端点:/identity/api/v2/user/videos/{id}
  2. 使用Burp Intruder测试不同HTTP方法
  3. 发现DELETE方法可用
  4. 将URL中的user改为admin/identity/api/v2/admin/videos/{id}
  5. 发送DELETE请求成功删除视频

4. 总结

crapi靶场提供了全面的API安全漏洞实践环境,通过解决这些挑战可以深入理解:

  1. API安全的核心问题
  2. OWASP API TOP 10漏洞的实际表现
  3. 漏洞利用的基本技术
  4. API安全测试的基本方法

建议按照挑战顺序逐步练习,理解每种漏洞的原理和利用方法,从而提升API安全测试能力。

API安全漏洞靶场crapi教学文档 1. 概述 crapi是一个专门设计用于学习和实践API安全性的漏洞靶场,模拟了一个车主注册和管理车辆的平台。该靶场包含了OWASP API TOP 10中的主要漏洞类型,包括: 失效的对象级别授权漏洞 失效的用户身份验证漏洞 过多的数据暴露漏洞 速率限制漏洞 失效的功能级别授权 批量分配 SSRF 注入 未经身份验证的访问漏洞 2. 环境搭建 2.1 系统要求 Docker最新版本(低版本可能导致配置失败) Docker Compose 2.2 安装步骤 安装完成后,访问 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安全测试能力。