API安全Top 10 漏洞:crAPI漏洞靶场与解题思路
字数 1709
更新时间 2025-08-11 22:57:12

crAPI漏洞靶场实战指南:OWASP API安全Top 10漏洞解析

1. 靶场简介与安装

crAPI是OWASP推出的API安全项目,用于演示常见的API安全漏洞。安装方法:

docker-compose -f docker-compose.yml --compatibility up -d

官方资源:

  • GitHub地址: https://github.com/OWASP/crAPI
  • 官方挑战提示: https://github.com/OWASP/crAPI/blob/develop/docs/challenges.md

2. API安全漏洞详解与实战

2.1 失效的对象级别授权(Broken Object Level Authorization)

挑战1:访问其他用户车辆信息

  1. 在社区论坛接口获取评论者信息(泄露用户ID)
  2. 车辆定位功能处修改vehicle_id参数访问其他车辆信息

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

  1. 提交维修报告后获取返回的report_id
  2. 修改report_id参数查看其他用户的维修报告

2.2 失效的用户身份验证(Broken User Authentication)

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

  1. 找到泄露用户email的接口
  2. 密码重置功能分析:
    • 重放攻击有限制
    • 将API版本从v3改为v2可绕过限制
  3. 爆破4位数OTP完成密码重置

2.3 过多的数据暴露(Excessive Data Exposure)

挑战4:发现敏感信息泄露接口

  • /community/api/v2/community/posts/recent泄露用户敏感信息

挑战5:发现视频内部属性泄露

  • /identity/api/v2/user/videos/30暴露视频内部属性

2.4 资源缺乏和速率限制(Lack of Resources & Rate Limiting)

挑战6:完成DoS攻击

  1. 找到"contact mechanic"功能
  2. 修改参数:
    • repeat_request_if_failed: true
    • number_of_repeats: [大数字]

2.5 失效的功能级别授权(Broken Function Level Authorization)

挑战7:删除其他用户视频

  1. 将PUT请求改为DELETE方法
  2. 尝试将接口中的user改为admin
  3. 修改videos后的ID参数为其他用户的视频ID

2.6 批量分配漏洞(Mass Assignment)

挑战8:免费获得商品

  1. 订单接口将GET改为PUT
  2. 修改参数:
    • status: "returned"(直接标记为已退货增加余额)

挑战9:增加1000元余额

  1. 修改订单数量为100,status为"delivered"
  2. 再改为"returned"状态

挑战10:更新视频内部属性

  • 修改视频名称时添加conversion_params参数

2.7 服务器端请求伪造(SSRF)

挑战11:使crAPI请求百度

  1. 联系机械工接口修改mechanic_api值为http://baidu.com
  2. 也可使用dnslog验证

2.8 NoSQL注入

挑战12:获取免费优惠券

  • 优惠券验证接口使用NoSQL注入:
    {"$ne":"xxxxxxxxxxxx"}($ne表示不等于)
  • 获取优惠券代码:TRAC075

2.9 SQL注入

挑战13:重复兑换优惠券

  • 最新版本源码存在SQL注入漏洞(Docker版本可能未包含)

2.10 未经身份验证的访问(Unauthenticated Access)

挑战14:发现无需认证的接口

  • 机械工报告接口无需认证即可访问

2.11 其他漏洞示例

商品添加漏洞

  1. 商品列表接口将GET改为POST
  2. 构造参数添加商品

支付漏洞

  1. 购买商品时修改数量为负数
  2. 导致余额增加

JWT密钥爆破

  1. 使用JWT_Tool爆破得到密钥:crapi
  2. 伪造token访问系统

3. 总结

crAPI靶场覆盖了OWASP API安全Top 10中的主要漏洞类型,包括:

  • 授权/认证缺陷
  • 数据过度暴露
  • 注入漏洞
  • 业务逻辑漏洞
  • 配置错误等

通过实战可以深入理解API安全风险,建议按照官方挑战文档逐步练习,掌握每种漏洞的原理和利用方法。

相似文章
相似文章
 全屏