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, 安全测试工具, 安全靶场, 应用安全, 日志审计, 版权保护, 请求拦截, 金融业务安全