tachote/hard-ctf
GitHub: tachote/hard-ctf
基于 Spring Cloud Gateway 和 Go 微服务构建的源码可见银行工作流安全挑战项目,用于 CF 竞赛或安全研究中的微服务漏洞挖掘练习。
Stars: 0 | Forks: 0
# D2B 工作流控制
基于 Spring Cloud Gateway 和 Go 微服务构建的源码可见银行工作流挑战。
## 前置条件
- Docker Engine 及 Docker Compose v2
- Bash
- OpenSSL
- 用于可选冒烟测试的 `curl`
## 快速开始
```
./gen-env.sh
docker compose up --build -d
docker compose ps
```
应用程序监听 `http://localhost:8090`。仅发布 Nginx 边缘节点;
Gateway 和所有 Go 服务均保留在私有 Compose 网络上。
验证公开登录流程:
```
curl -sS -X POST http://localhost:8090/auth/login \
-H 'Content-Type: application/json' \
--data '{"document-id":"1001","password":"alice123"}'
```
停止挑战:
```
docker compose down
```
生成一组新的密钥并重置内存状态:
```
docker compose down
./gen-env.sh
docker compose up --build -d
```
## 布局
| 路径 | 角色 |
|---|---|
| `edge/` | 公开 Nginx 反向代理 |
| `gateway/` | Spring Cloud Gateway 认证与路由 |
| `identity/` | 登录、操作员恢复和管理数据 |
| `documents/` | 客户文档与预览任务 |
| `renderer/` | 内部预览调度器 |
| `audit/` | 基于客户作用域的工作流事件 |
| `docker-compose.yml` | 完整的本地拓扑 |
| `gen-env.sh` | 本地随机密钥生成器 |
生成的 `.env` 会被 Git 忽略。请勿使用部署密钥替换 `.env.example`。
测试账户:
```
document-id: 1001
password: alice123
```
## 公开 API
| 方法 | 路径 | 用途 |
|---|---|---|
| POST | `/auth/login` | 签发客户 token |
| GET | `/api/documents/list` | 列出拥有的文档 |
| POST | `/api/documents/preview/jobs` | 将文档预览加入队列 |
| POST | `/api/documents/preview/callback` | 处理预览 callback |
| GET | `/api/audit/events` | 读取已认证客户的审计事件 |
| POST | `/auth/operator/recovery/complete` | 完成操作员恢复工作流 |
| GET | `/api/admin/stats` | 读取操作员统计数据 |
所有 `/api/**` endpoint 均需要 `Authorization: Bearer `。
标签:CISA项目, Docker Compose, EVTX分析, Go微服务, Spring Cloud Gateway, StruQ, 安全测试工具, 安全靶场, 应用安全, 日志审计, 版权保护, 请求拦截, 金融业务安全