renkagod/hardened-docker-ctf-labs

GitHub: renkagod/hardened-docker-ctf-labs

一套采用生产级 Docker 加固配置的 Flask CTF 实验环境,内置解题脚本、writeup 与自动化检查流程。

Stars: 0 | Forks: 0

# hardened-docker-ctf-labs [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) 具有生产级 **Docker 加固** 的 **夺旗赛 (CTF) 实验环境**:非 root 用户、降权 capabilities、只读文件系统、tmpfs、资源限制以及健康检查 —— 此外还包含完整的解题脚本和 writeup。 最初为 Caplag CTF 编写。 ## 内容概览 | 实验环境 | 主题 | 安全知识点 | |-----|--------|-----------------| | [01 — Ghost Dev Pipeline](labs/01-ghost-dev-pipeline/) | Web + 取证 | Git 历史记录泄露、供应链 tarball、HMAC API、时间侧信道 | | [02 — VibeChain Breach](labs/02-vibechain-breach/) | Web | JWT `alg=none`、scope 混淆、异常处理 (OWASP A03 / A10) | 每个实验环境包含: - Flask 应用 (`deploy/app.py`) - 带有加固配置的 `Dockerfile` + `docker-compose.yml` - `solve/solve.py` — 确定性漏洞利用路径 - `WRITEUP.md` — 逐步解题指南 - `check.sh` / `check.ps1` — 构建、等待健康检查、运行解题脚本、清理销毁 ## 架构 ``` flowchart LR subgraph host [Host] compose[docker compose] solver[solve.py] check[check.sh] end subgraph container [Hardened container] app[Flask / Gunicorn] tmpfs["tmpfs /tmp /run"] end compose -->|build + limits + caps| container check --> compose check --> solver solver -->|HTTP :1337| app compose -->|healthcheck /health| app ``` ## 快速开始 **环境要求:** 带有 Compose v2 的 Docker、Python 3.11+、Git(仅 Lab 01 构建需要)。 ``` # 实验 01 cd labs/01-ghost-dev-pipeline cp .env.example .env python3 build_task.py cp .env deploy/.env docker compose -f deploy/docker-compose.yml up -d --build # 实验 02 cd labs/02-vibechain-breach docker compose -f deploy/docker-compose.yml up -d --build ``` 两个服务均监听 **http://127.0.0.1:1337**。 运行完整的冒烟测试 (Linux/macOS): ``` bash scripts/smoke-test-all.sh ``` ## 加固概览 两个实验环境共享相同的 Compose 安全基线 —— 有关详细说明,请参阅 [docs/hardening.md](docs/hardening.md)。 ``` cap_drop: [ALL] security_opt: [no-new-privileges:true] read_only: true tmpfs: [/tmp, /run] cpus: 0.50 mem_limit: 128m pids_limit: 50 healthcheck: ... ``` Lab 01 以 `nobody` 用户身份运行;Lab 02 使用专用的 `ctf` 用户以及带有限制 worker 的 Gunicorn。 ## 仓库结构 ``` hardened-docker-ctf-labs/ ├── README.md ├── LICENSE ├── docs/ │ └── hardening.md ├── scripts/ │ └── smoke-test-all.sh └── labs/ ├── 01-ghost-dev-pipeline/ └── 02-vibechain-breach/ ``` ## Flag 格式 演示 flag 使用 `FLAG{...}`。在任何公开活动之前,请通过环境变量(`CTF_FLAG`、`FLAG`、`API_KEY`、`OPS_JWT_SECRET`)进行替换。 ## 许可证 [MIT](LICENSE) — 版权所有 (c) 2026 [renkagod](https://github.com/renkagod)。 ## Русский **hardened-docker-ctf-labs** — 包含两个 Flask CTF 实验环境的仓库,采用强化的 Docker 配置(non-root、`cap_drop`、只读、tmpfs、限制、healthcheck)。内含解题脚本、writeup 和自动化检查。 快速开始:将 `.env.example` 复制到 Lab 01,使用 `build_task.py` 构建产物,在 `deploy/` 目录中启动 `docker compose`。详情请参阅各实验环境的 README 以及 [docs/hardening.md](docs/hardening.md)。
标签:Docker安全加固, Flask, OPA, Web安全, 版权保护, 蓝队分析, 请求拦截, 逆向工具, 靶场