jonscafe/whaley
GitHub: jonscafe/whaley
专为 CTF 比赛打造的 Docker 实例管理器,为每位参赛者提供独立隔离的挑战环境并集成动态 Flag、作弊检测和资源监控。
Stars: 7 | Forks: 0
🐳 Whaley
专为 CTF 比赛打造的 Docker 实例管理器
功能特性 • 快速开始 • 文档 • 系统截图 • 参与贡献
## 📋 概述 **Whaley** 是一个专为 Capture The Flag (CTF) 比赛设计的生产就绪型 Docker 实例管理器。将其部署在专用服务器上,可为每位参赛者提供各自独立的隔离挑战环境——具备自动端口分配、资源限制以及与 CTFd 的无缝集成等功能。 ### 为什么选择 Whaley? | 问题 | Whaley 的解决方案 | |---------|-------------------| | 共享挑战实例会导致相互干扰 | 🔒 为每个用户/团队提供**独立容器** | | 手动管理端口容易出错 | 🎯 带冲突预防的**自动端口分配** | | 无法直观了解参赛者的资源使用情况 | 📊 **实时监控**仪表盘 | | 难以检测 flag 共享(作弊)行为 | 🔍 **可疑提交检测** | | 动态 flag 的配置非常复杂 | 💉 与 CTFd **轻松集成**并自动注入 flag | ## ✨ 功能特性| ### 🚀 核心功能 - **动态生成实例** — 为每个用户/团队提供独立的 Docker 容器 - **自动端口分配** — 智能端口管理(10000-60000 范围) - **多端口挑战** — 支持复杂的多服务挑战 - **自动清理** — 超时后自动终止实例 - **支持 Docker Compose** — 标准的 `.yaml` 和 `.yml` 格式 - **强制资源限制** — 对所有容器强制执行全局内存、CPU 和 PID 上限 - **按挑战自定义资源** — 可在管理面板中微调每个挑战的资源限制 ### 🔐 认证与安全 - **CTFd 集成** — 通过 CTFd 访问令牌验证用户和管理员 RBAC - **无认证模式** — 基于.IP 识别的公开活动模式 - **网络隔离** — 每个实例都运行在独立的 Docker 网络中 - **分布式锁** — 基于 Redis 的锁机制,确保多 worker 的安全性 - **Fork 炸弹防护** — 限制每个容器的 PID 数量 | ### 🚩 动态 Flag - **唯一的 Flag** — 每个用户/团队在每个挑战中获得独立的 flag - **自动注入 Flag** — 在构建时将 flag 注入到挑战文件中 - **CTFd 注册** — 自动向 CTFd 注册 flag - **提交监控** — 检测并记录 flag 共享企图 - **团队模式支持** — 启用时,团队内共享 flag ### 📊 监控与管理 - **实时指标** — 查看每个容器的实时 CPU/RAM 使用情况 - **实例取证** — 在终止时或按需捕获日志 - **管理仪表盘** — 用于监控和管理的 Web UI - **挑战管理器** — 无需 SSH 即可上传和编辑挑战 - **挑战开关** — 在管理面板中激活/停用挑战 - **管理员设置界面** — 通过 Web UI 配置所有 Whaley 设置(无需编辑 env/compose 文件) - **事件日志** — 包含 Docker 错误的完整审计跟踪 |
User Dashboard |
Admin Dashboard |
Event Logs |
Challenge Manager |
Dynamic Flags |
CTFd Challenge Sync |
keii Creator & Maintainer |
Built with ❤️ for the CTF community
If you find Whaley useful, please consider giving it a ⭐
标签:CTFd, Docker, Web截图, 作弊检测, 动态靶标, 安全防御评估, 实例管理, 容器安全, 容器编排, 搜索引擎查询, 测试用例, 版权保护, 特权提升, 竞赛平台, 端口分配, 网络安全, 自动化部署, 请求拦截, 资源限制, 逆向工具, 隐私保护, 隔离环境, 靶场管理