crAPI 模拟了一个汽车维修服务的B2C应用,采用微服务架构构建。用户可以通过Web界面进行注册、管理车辆、联系技师、购买配件以及在社区中互动。
crAPI 采用微服务架构,包含以下组件:
服务名称 | 技术栈 | 功能描述 |
---|---|---|
web | OpenResty | 主入口服务,Web界面 |
identity | Java | 用户认证和授权管理 |
community | Go | 社区博客和评论功能 |
workshop | Python | 车辆维修工单管理 |
mailhog | - | 邮件模拟服务 |
mongo | MongoDB | NoSQL数据库 |
postgres | PostgreSQL | SQL数据库 |
使用预构建镜像:
# 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
http://localhost:8888
获取用户车辆信息:
curl -X GET "http://localhost:8888/identity/api/v2/user/dashboard" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
crAPI 内置了多个安全挑战,涵盖以下漏洞类型:
完整挑战列表请参阅挑战文档(challenges.md)
项目链接地址:https://github.com/OWASP/crAPI.git