crAPI – 存在漏洞的API项目
crAPI – 存在漏洞的API项目
原创 qife 网络安全技术点滴分享 2025-05-26 00:35
crAPI 是一个OWASP提供的故意设计存在漏洞的API项目,通过这个项目,可以安全地运行并训练自己识别和利用API中的安全漏洞。
项目概述
crAPI 模拟了一个汽车维修服务的B2C应用,采用微服务架构构建。用户可以通过Web界面进行注册、管理车辆、联系技师、购买配件以及在社区中互动。
主要功能
-
用户认证系统
:包含注册、登录、密码重置等功能,故意设计存在认证漏洞 -
车辆管理
:添加车辆、查看车辆位置、联系技师维修 -
在线商店
:购买汽车配件,使用优惠券,管理订单 -
社区功能
:发布帖子、评论互动 -
漏洞挑战
:内置15+个安全挑战,涵盖OWASP API安全十大风险
技术架构
crAPI 采用微服务架构,包含以下组件:
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
结构图如下:
安装指南
系统要求
-
Docker 和 docker-compose (版本1.27.0或更高)
-
推荐配置:t2.micro机器(1 CPU, 1GB内存)
快速启动
使用预构建镜像:
# Linux
curl -o /tmp/crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/main.zip
unzip /tmp/crapi.zip
cd crAPI-main/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
# Windows
curl.exe -o crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/main.zip
tar -xf .\crapi.zip
cd crAPI-main\deploy\docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
配置覆盖
可以通过修改.env
文件或直接在命令中设置环境变量来覆盖默认配置:
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
使用说明
-
访问Web界面:http://localhost:8888
-
注册新账户
-
探索各项功能并尝试发现漏洞
示例API调用
获取用户车辆信息:
curl -X GET "http://localhost:8888/identity/api/v2/user/dashboard" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
漏洞挑战
crAPI 内置了多个安全挑战,涵盖以下漏洞类型:
1. BOLA (Broken Object Level Authorization)
-
访问其他用户的车辆详情
-
查看其他用户的维修报告
-
认证漏洞
-
重置其他用户密码
-
JWT令牌伪造
-
数据过度暴露
-
查找泄露敏感信息的API端点
-
发现视频的内部属性
-
速率限制
-
通过”联系技师”功能实施DoS攻击
-
BFLA (Broken Function Level Authorization)
-
删除其他用户的视频
完整挑战列表请参阅挑战文档(
challenges.md)
项目链接地址:
https://github.com/OWASP/crAPI.git