OWASP/crAPI
GitHub: OWASP/crAPI
OWASP 官方打造的故意存在漏洞的 API 安全演练平台,帮助安全从业者和开发者学习 OWASP API 安全十大风险。
Stars: 1458 | Forks: 539
# crAPI
**c**ompletely **r**idiculous **API** (crAPI) 将帮助你了解十大最关键的 API 安全风险。crAPI 在设计上是 intentionally vulnerable(存在漏洞)的,但你可以在安全的环境中运行它来进行自学或培训。
crAPI 是现代化的,构建在微服务架构之上。当你准备购买人生第一辆车时,注册一个账户并开始你的旅程吧。想了解更多关于 crAPI 的信息,请查看 [crAPI 概述][overview]。
## 快速入门指南
### 应用程序工作流(正常流程)
在搭建好 crAPI 之后,建议先按照预期的用户工作流操作,以了解应用程序在尝试任何安全挑战之前应该如何正常运行。
-[应用程序工作流(正常流程)](docs/happy-path.md)
### Docker 和 docker compose
你需要并在主机系统上安装并运行 Docker 和 docker compose。此外,docker compose 的版本应为 `1.27.0` 或更高。使用以下命令检查你的 docker compose 版本:
```
docker compose version
```
**如果你遇到如下错误,请升级你的 docker compose 版本**
```ERROR: Invalid interpolation format for ...```
#### 使用预构建镜像
你可以通过下载 docker compose 和 **.env** 文件,使用我们的 CI 工作流生成的预构建镜像。
- 使用最新的稳定版本。
- Linux 机器
curl -L -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
要覆盖服务器配置,请修改 **.env** 文件中的变量值,或者在 docker compose 命令开头添加相应的变量。
例如,要将系统暴露给所有网络接口。
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
- Windows 机器
curl.exe -L -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** 文件中的变量值,或者在 docker compose 命令开头添加相应的变量。
例如,要将系统暴露给所有网络接口。
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
- 使用最新的开发版本
- Linux 机器
curl -L -o /tmp/crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/develop.zip
unzip /tmp/crapi.zip
cd crAPI-develop/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
要覆盖服务器配置,请修改 **.env** 文件中的变量值,或者在 docker compose 命令开头添加相应的变量。
例如,要将系统暴露给所有网络接口。
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
- Windows 机器
curl.exe -L -o crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/develop.zip
tar -xf .\crapi.zip
cd crAPI-develop/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
要覆盖服务器配置,请修改 **.env** 文件中的变量值,或者在 docker compose 命令开头添加相应的变量。
例如,要将系统暴露给所有网络接口。
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
访问 [http://localhost:8888](http://localhost:8888)
**注意**:所有邮件默认发送到 mailhog 服务,可以在 [http://localhost:8025](http://localhost:8025) 查看。
如果需要,你可以更改 smtp 配置,但所有域名为 **example.com** 的邮件仍将发送到 mailhog。
关于聊天机器人 LLM 提供商的配置,请参阅 [设置说明](docs/setup.md#chatbot-llm-configuration)。
### Vagrant
此选项允许你在虚拟机中运行 crAPI,从而与你的系统隔离。你需要安装 [Vagrant] 以及例如 [VirtualBox]。
1. 克隆 crAPI 仓库
$ git clone [REPOSITORY-URL]
2. 启动 crAPI 虚拟机
$ cd deploy/vagrant && vagrant up
3. 访问 [http://192.168.33.20](http://192.168.33.20)
**注意**:所有邮件发送到 mailhog 服务,可以在 [http://192.168.33.20:8025](http://192.168.33.20:8025) 查看。
当你体验完 crAPI 后,可以在仓库根目录运行以下命令将其从系统中完全移除
```
$ cd deploy/vagrant && vagrant destroy
```
## 更多部署选项,请访问 [设置说明](docs/setup.md) 了解详情。
## 想了解更多关于 crAPI 中的挑战,请访问 [挑战][challenges]
## crAPI 安装和运行常见问题故障排除指南
如果你在安装和运行 crAPI 时需要帮助,可以查看此指南:[crAPI 故障排除指南](https://github.com/OWASP/crAPI/blob/main/docs/troubleshooting.md)。如果这未能解决你的问题,请在 Github Issues 中创建一个 issue。
标签:API安全, CISA项目, DevSecOps, Docker, JSON输出, OPA, OWASP Top 10, Web安全, 上游代理, 域名枚举, 安全培训, 安全编码, 安全防御评估, 微服务架构, 测试用例, 漏洞演练平台, 版权保护, 网络安全, 脆弱性分析, 蓝队分析, 请求拦截, 隐私保护, 靶场