4dn4n4n1k/darkmarket-vuln-lab

GitHub: 4dn4n4n1k/darkmarket-vuln-lab

一个模拟暗网黑市的 Web 安全教育靶场,通过 CTF 夺旗赛模式帮助学习者在沉浸式环境中实践 OWASP Top 10 经典漏洞攻防。

Stars: 0 | Forks: 0

# 🕶️ Dark Market Simulator ## ⚠️ 法律免责声明 本项目是一个 **100% 虚构的沙盒教育环境**。所有商品列表、用户和数据均属虚构。不涉及任何真实交易、真实凭证或针对真实运行系统的攻击。这是一个专为网络安全教育设计的 **夺旗赛 (CTF)** 平台。 ## 🎯 这是什么? Dark Market Simulator 是一个具有暗网美学风格的市场,故意植入了经典的 Web 漏洞。用户(“黑客”)可以浏览虚构的商品列表,发现隐藏的攻击面,对其进行利用并收集加密 flag —— 所有这些都在安全的本地或容器化环境中进行。 它服务于三类受众: | 角色 | 收益 | |------|--------------| | **学生** | 在逼真的 UI 中进行 OWASP Top 10 的实践练习 | | **导师** | 现成的带有日志仪表盘的 CTF 平台 | | **研究人员** | 用于研究攻击模式的蜜罐式分析层 | ## ✨ 功能概览 ### 🛒 伪造市场 UI - 浏览虚构的商品列表(数据库转储、零日漏洞、工具 —— 均为伪造) - BTC 风格的定价、卖家评分、评论主题 - 具有 Tor 风格品牌设计的暗黑系 UI 美学 ### 💣 故意设置的漏洞(CTF 挑战) | Flag | 漏洞 | 技术 | |------|--------------|-----------| | 🏴 Flag 1 | SQL 注入 | `' OR 1=1 --` 登录绕过 | | 🏴 Flag 2 | 身份验证失效 | JWT 密钥爆破 | | 🏴 Flag 3 | 存储型 XSS | 通过评论进行脚本注入 | | 🏴 Flag 4 | IDOR | 访问其他用户的订单 | | 🏴 Flag 5 | 路径遍历 | 读取服务器配置文件 | | 🏴 Flag 6 | SSRF | 内部网络探测 | ### 🖥️ 黑客模式终端 - 可切换的侧边栏,用于转变 UI - 针对每个页面注入与上下文相关的提示 - 带有伪造 `nmap`、`sqlmap` 输出的模拟终端 ### 📊 日志仪表盘 - 记录每一次漏洞利用尝试(payload、endpoint、时间戳) - 被攻击最多 endpoint 的可视化热力图 - 将日志导出为 JSON/CSV 以用于学术报告 ### 🏆 Flag 与记分板系统 - `DMS{...}` 格式的加密 flag - 实时全球排行榜(或特定班级排行榜) - 每个 flag 的分值和难度评级 ## 🗂️ 仓库结构 ``` dark-market-sim/ ├── README.md # This file ├── ARCHITECTURE.md # System design & data flow ├── SKILL.md # Coding standards & AI assistant context ├── CTF_CHALLENGES.md # Vulnerability design specs ├── API_SPEC.md # REST API reference ├── SECURITY_NOTES.md # Safe deployment guidelines │ ├── server/ # Node.js + Express backend │ ├── app.js │ ├── routes/ │ │ ├── auth.js # Intentionally vulnerable auth │ │ ├── listings.js │ │ ├── admin.js │ │ └── flags.js │ ├── middleware/ │ │ ├── logger.js # Attack attempt logger │ │ └── hintInjector.js │ ├── db/ │ │ ├── schema.sql │ │ └── seed.js │ └── utils/ │ └── flagGenerator.js │ ├── client/ # Vanilla HTML/CSS/JS frontend │ ├── index.html │ ├── assets/ │ │ ├── css/ │ │ │ ├── dark-theme.css │ │ │ └── terminal.css │ │ └── js/ │ │ ├── hacker-mode.js │ │ ├── terminal.js │ │ └── scoreboard.js │ └── pages/ │ ├── login.html │ ├── market.html │ ├── listing.html │ ├── dashboard.html # Admin/logging (protected) │ └── scoreboard.html │ ├── docker/ │ ├── Dockerfile │ └── docker-compose.yml │ └── docs/ ├── screenshots/ └── writeups/ # Solution writeups (instructor-only) ``` ## 🚀 快速开始 ### 前置条件 - Node.js ≥ 18 - npm ≥ 9 - SQLite3(通过 `better-sqlite3` 内置) ### 安装 ``` git clone https://github.com/yourname/dark-market-sim.git cd dark-market-sim npm install npm run db:seed # Seeds fake listings, users, flags npm run dev # Starts on http://localhost:3000 ``` ### Docker(推荐用于隔离环境) ``` docker-compose up --build # App: http://localhost:3000 # Dashboard: http://localhost:3000/admin (admin:admin123) ``` ## 🔧 环境变量 ``` PORT=3000 NODE_ENV=development DB_PATH=./server/db/market.sqlite JWT_SECRET=supersecret # Intentionally weak — part of Flag 2 ADMIN_PASSWORD=admin123 FLAG_SALT=DMS_INTERNAL_SALT SESSION_SECRET=notverysecret ``` ## 🧪 技术栈 | 层级 | 技术 | 原因 | |-------|-----------|-----| | 后端 | Node.js + Express | 快速、易上手、工具生态丰富 | | 数据库 | SQLite (better-sqlite3) | 零配置、可移植、易于检查 | | 认证 | JWT + express-session | 允许模拟真实的 JWT 漏洞 | | 前端 | Vanilla HTML/CSS/JS | 无框架开销,最大化透明度 | | 容器化 | Docker + Compose | 安全隔离的部署环境 | | 日志 | Winston + SQLite | 结构化日志,支持查询 | ## 📚 学术用途 本项目可作为以下内容被引用或记录: ## 📄 许可证 MIT License — 仅限教育用途。
标签:AppImage, CISA项目, CMS安全, Docker, IDOR, JavaScript, JWT, MITM代理, NIDS, OPA, OWASP Top 10, Python, SSRF, Web安全, Web应用防火墙, XSS, 后端开发, 安全培训, 安全教育, 安全测试, 安全防御评估, 容器化, 抓旗赛, 插件系统, 攻击分析, 攻击性安全, 攻击路径可视化, 教育平台, 无后门, 暗网模拟, 服务器端请求伪造, 漏洞情报, 漏洞靶场, 网络安全, 蓝队分析, 蜜罐, 证书利用, 请求拦截, 越权漏洞, 跨站脚本攻击, 路径遍历, 身份验证绕过, 防御检测, 隐私保护, 靶场, 黑客工具, 黑市模拟