renkagod/hardened-docker-ctf-labs
GitHub: renkagod/hardened-docker-ctf-labs
一套采用生产级 Docker 加固配置的 Flask CTF 实验环境,内置解题脚本、writeup 与自动化检查流程。
Stars: 0 | Forks: 0
# hardened-docker-ctf-labs
[](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安全, 版权保护, 蓝队分析, 请求拦截, 逆向工具, 靶场