gusta-ve/deadwood
GitHub: gusta-ve/deadwood
一个自托管的 Web 安全渐进式靶场,提供从教程级到不可能攻破的多个实战关卡,用于学习 Web 漏洞利用和测试渗透工具。
Stars: 0 | Forks: 0
# deadwood
一个自托管的**Web安全靶场**,同时也是一份教程——从最简单的注入到刻意设计成几乎无法攻破的关卡,
逐级递进。它是练习“死人牌”(dead man's hand)的演练场:用
[**wraith**](https://github.com/gusta-ve/wraith) 侦察每个房间,用
[**hickok**](https://github.com/gusta-ve/hickok) 进行攻击,夺取 flag,然后阅读存在漏洞的源代码及其修复方案。
零依赖(标准库 + SQLite)。仅在 **127.0.0.1** 上运行。
[](https://pypi.org/project/deadwood-sec/)
[](https://github.com/gusta-ve/deadwood/actions/workflows/ci.yml)
[](https://github.com/gusta-ve/deadwood/releases)


- [安装](#install)
- [运行方式](#run-it)
- [关卡机制](#how-a-level-works)
- [关卡列表](#the-levels)
- [与 wraith 和 hickok 配合使用](#pairing-with-wraith--hickok)
- [测试](#tests)
## 安装
```
pipx install deadwood-sec # gives you the `deadwood` command
```
或者通过克隆仓库安装:`pip install -e .` —— 或者不安装直接运行:
`PYTHONPATH=src python3 -m deadwood`。
## 运行方式
```
deadwood serve # http://127.0.0.1:8666 (the town map)
deadwood levels # list the rooms and your progress
deadwood learn first-blood # a level's briefing: objective, hints, source, the fix
deadwood flag first-blood 'DEADWOOD{...}' # submit a captured flag
```
在浏览器中打开地图,选择一个房间,然后将你的工具指向它提供的应用 URL(例如 `http://127.0.0.1:8666/l/first-blood/app?id=1`)。
## 关卡机制
每个房间的结构都一样,难度从易到难:
- 一个**逼真的应用**(虚构的 *Deadwood Telegraph & Trust Co.* —— 包含员工、客户、账户、电报),其中包含一个真实的漏洞;
- 一个需要夺取的 **flag**(`DEADWOOD{...}`,在你的安装中是唯一的);
- **逐级提示** —— 如果需要,你可以一次只揭晓一个;
- **存在漏洞的源代码**以及**修复方案**,在你主动查看时显示(剧透警告)。
你可以像玩 CF 一样盲目尝试,或者依赖提示并输入 `learn` 将其作为教程。你的通关记录会在本地进行追踪。
## 关卡列表
从教程级到无法攻破级。每个关卡都对应一种技术,你可以手动练习,也可以通过 hickok/wraith 驱动:
| # | 房间 | 难度 | 攻击向量 |
|---|------|------|--------|
| 1 | First Blood | 教程级 | SQL injection — UNION(回注型/In-band) |
| 2 | Whispers | 简单 | SQL injection — 布尔盲注 |
| 3 | The Telegraph | 中等 | SQL injection — 时间盲注 |
| 4 | Back Door | 中等 | OS command injection → shell |
| 5 | The Bouncer | 中等 | SQL injection — 认证绕过 |
| 6 | Sleight of Hand | 困难 | 绕过引号/目录过滤的 UNION |
| 7 | The Cipher | 困难 | 服务端模板注入(SSTI) → RCE |
| 8 | Dead Man's Hand | 残酷 | 绕过 WAF 黑名单的盲注 |
| 9 | The Vault | 不可能 | 二阶(存储型)SQL injection |
## 与 wraith 和 hickok 配合使用
deadwood 是这些工具在开发过程中使用的靶场。典型的运行流程:
```
deadwood serve & # the town
hickok sql -u 'http://127.0.0.1:8666/l/first-blood/app?id=1' -p id --dump secrets
```
当工具无法攻破某个房间时,说明工具需要修复 bug;当房间太容易时,说明房间的防御需要加强。它们在这个过程中相互磨砺。
## 测试
```
pip install -e ".[dev]" && pytest
```
测试套件会检查引擎(flag、注册表、关卡隔离、种子世界),并验证每个关卡的漏洞是否按教程描述的方式运作。请参阅
[CONTRIBUTING.md](CONTRIBUTING.md) 了解如何添加新房间,并查看 [SECURITY.md](SECURITY.md)
了解负责任的使用政策。
## 许可证
MIT。
*Deadwood,1876 年 —— 死人牌发牌之地。*
标签:Blue Team, CISA项目, IP 地址批量处理, Python, SQLite, Web安全, 安全教育, 安全靶场, 无后门, 网络安全, 蓝队分析, 逆向工具, 隐私保护