一个现代化的网络靶场,提供涵盖Web、API、云、AI和蓝队安全领域的50个动手挑战。具备引导式攻击链、透明AI模拟器以及GRC证据报告功能,用于学习渗透测试和防御技术。
一个现代化的易受攻击应用与网络靶场,用于通过动手攻击链学习 Web、API、云、 AI 和蓝队安全。
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ 现代化网络靶场 · 53 个挑战 · 8 条学习路径 ║
╚═══════════════════════════════════════════════════════════════╝
★ 如果这个仓库对你有帮助,请给它加星标——这是免费的,也能帮助其他人发现免费的安全教育资源。
PENTEST-LAB 不是又一个单漏洞靶机。它是一个完整的网络靶场,将攻击者与防御者视角相结合,并输出 GRC 风格的证据:
[SYSTEM][USER][RETRIEVED][HISTORY] 上下文、生成的输出、检测到的注入技术,以及每个缓解措施的开关。127.0.0.1,在 0.0.0.0 上发出强烈警告,所有密钥均为伪造并明确标记,SSRF 目标为本地进程内模拟(无真实出站流量),无外部目标。make verify-registry 验证挑战注册表(唯一 id/flag、必填字段、资源、提示数量),确保目录保持一致。# 1. 一行命令(安装依赖、初始化数据库、启动服务器)
python start_lab.py
# 或: make start
在浏览器中打开 **http://localhost:3000**。
# 仅后端
cd backend && npm install && npm start
# Docker(仅发布到 127.0.0.1)
docker compose up --build
# 重置捕获的 flag / 事件 / 攻击链进度
make reset
# 刷新演示种子数据
make seed
# 核心路由冒烟测试(先启动靶场)
make test
# 验证挑战注册表(唯一 id/flag、字段、资源)
make verify-registry
# 安全的仅本地漏洞利用演示(5 个挑战)
python demo_exploit.py
| 路径 | 你将学到什么 | 数量 |
|---|---|---|
| ◆ Web 应用渗透 | SQLi、IDOR、文件上传、路径遍历、WAF 绕过 | 14 |
| ◆ API 安全 | BOLA、批量赋值、限速绕过、Webhook、GraphQL、CORS 反射、NoSQL 注入 | 7 |
| ◆ 认证与会话 | JWT kid/alg 混淆、刷新令牌重用、重置令牌、会话固定、MFA、Host 头重置投毒 | 9 |
| ◆ 云 / DevOps | .env 泄露、SSRF 元数据、Docker 调试、公共存储、CI/CD 令牌 | 5 |
| ◆ AI 安全 | 提示注入、间接注入、RAG 泄露/投毒、工具调用、多轮越狱、输出过滤器绕过,以及三级审计演练 | 10 |
| ◆ 业务逻辑 | 优惠券叠加、负数量、竞态条件、支付绕过 | 5 |
| ◆ 攻击链 | 引导式端到端路径 + 遗留全链 RCE,附带证据 | 2 |
| ◆ 蓝队证据 | 检测攻击并生成 GRC 报告 | 1 |
| 53 |
每个挑战包含:id、标题、路径、类别、难度、目标、易受攻击端点、利用概念、3 个递进提示(模糊 → 具体 → 答案)、flag、修复措施、检测/证据说明、映射的控制域,以及先学后解的资源列表。
点击任意挑战卡片即可打开弹窗。它会提供:
一个真实、完全本地的六步检测链:
侦察 → 信息泄露 → 凭据/令牌滥用 →
权限提升 → 敏感数据访问 → 证据报告
B=http://127.0.0.1:3000
curl -s $B/api/attack-chain/recon # 1. 调试端点泄露路由
curl -s $B/api/attack-chain/leak # 2. 泄露的伪造 JWT 密钥(weak123)
# 3. 伪造管理员令牌 -> 4. 提权 -> 5. 读取伪造客户记录 -> 6. 报告
curl -s $B/api/attack-chain/progress
在 攻击链 标签页中实时跟踪进度。
防御者 标签页显示攻击者刚刚执行的相同活动:最近事件、失败登录、可疑 API 访问、文件上传、SSRF 尝试、提权尝试、捕获的 flag 和攻击链进度——每个事件按严重级别着色,flag 捕获用 🚩 标记。
curl -s http://localhost:3000/api/blue-team/dashboard
根据你捕获的 flag 生成报告,将每个 flag 映射到一个发现,包含严重级别、受影响端点、证据、业务影响、修复措施、控制域和检测机会。
# Markdown(默认)
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"markdown"}'
# JSON 或 CSV
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"csv"}'
# 映射的控制域:访问控制、日志与监控、
# 安全开发、密钥管理、变更管理、
# 配置管理、数据保护、事件响应。
⚠️ 这是用于检测/GRC 学习的广泛控制域映射。它不断言符合任何标准。
该仓库不附带截图或录制的 GIF。如果你创建本地演示资源,请将其放在 docs/screenshots/ 下,并同时记录捕获过程。面向演示者的 docs/DEMO_WALKTHROUGH.md 是维护中的演示脚本。
此靶场故意存在漏洞。请仅在隔离环境中运行,切勿将其暴露到互联网。
127.0.0.1(backend/.env 中的 HOST=127.0.0.1)。HOST=0.0.0.0 会打印强烈警告;UI 会显示危险横幅。├── start_lab.py # 一键启动器(依赖 + 种子数据 + 运行)
├── demo_exploit.py # 安全的仅本地漏洞利用演示(5 个挑战)
├── docker-compose.yml # 仅 localhost 发布
├── Makefile # install / start / reset / test / demo / docker
├── CHALLENGES.md # 完整挑战目录
├── frontend/ # 仪表板 UI(路径、攻击链、防御者、证据)
├── backend/
│ ├── server.js # Express 应用、localhost 绑定、路由接线
│ ├── challenges/registry.js # 集中式挑战注册表(53 个挑战)
│ ├── ai/ # 透明的 AI 模拟器 + RAG 存储(无外部 LLM)
│ ├── utils/events.js # 集中式事件存储 + 蓝队信息流
│ ├── routes/ # 易受攻击 + 模式路由(api、cloud、ai、shop、...)
│ ├── scripts/ # init-db、seed、reset、test_routes
│ └── middleware/ # auth(安全)、auth.vulnerable、waf、security
├── solutions/ # Python 漏洞利用 writeup
└── docs/ # 设置、工具、演示和攻击链指南
发现 bug 或想添加挑战?欢迎提交 PR。
backend/challenges/registry.js(单一事实来源)。events.captureFlag({ flag, req }) 发出 flag。make test 和 make verify-registry。仅限教育用途。如有 LICENSE 文件请参阅。仅可对你自己拥有或明确授权测试的系统使用——在这里,即指这个本地靶场。
如果这个靶场帮你学到了新东西: