Dhiptanshu/glsBB_CTF_Platform
GitHub: Dhiptanshu/glsBB_CTF_Platform
基于 Flask 和 SQLite 构建的轻量级企业级 CTF 竞赛平台,专为内部安全挑战、黑客马拉松和培训活动提供从挑战管理到实时排行榜的完整赛事托管能力。
Stars: 0 | Forks: 0
# GLS Bug Bounty 平台
## 核心功能
### 参赛者界面
* **挑战仪表板**:集中式视图,可按类别和难度筛选挑战。
* **Flag 验证**:用于提交 flag 的实时验证引擎,提供即时反馈。
* **提示系统**:自动发送提示,并可配置扣除的分数。
* **实时排行榜**:动态追踪用户进度和分数的实时排名系统。
* **进阶逻辑**:前置条件系统,在完成基础任务后解锁高级挑战。
### 管理与控制
* **管理控制台**:经过全面身份验证的仪表板 (`/admin`),用于完整的平台管理。
* **用户管理**:
* 完整的用户注册表视图。
* 封禁/解封功能,用于在活动期间严格执行规则。
* 服务器端密码重置功能。
* **挑战管理**:
* 针对挑战的完整 CRUD(创建、读取、更新、删除)操作。
* 详细配置分数、flag、提示成本和类别分配。
* **可见性控制**:
* 全局“Go Live”开关,用于立即启动和同步活动。
* 每个类别的精细化可见性设置,用于分阶段发布挑战。
* **报告**:数据导出功能,用于追踪指标、活动后分析和审计。
## 技术栈
* **后端框架**:Python 3.x,Flask(轻量级、可扩展)
* **数据库**:SQLite(通过 Write-Ahead Logging (WAL) 优化以实现高并发)
* **ORM**:SQLAlchemy(安全的数据库交互,防止 SQL injection)
* **前端**:HTML5,CSS3,Vanilla JavaScript(快速、响应式、无臃肿依赖)
* **Web 服务器**:Nginx(反向代理)背后的 Gunicorn (WSGI)
* **操作系统**:Ubuntu Linux(兼容 Oracle Cloud / AWS)
## 云端部署
该平台专为在 Oracle Cloud Infrastructure (Always Free Tier) 上部署而设计,利用 Ampere A1 或 AMD Micro 实例。
### 快速入门指南
1. **配置**:部署一个 Ubuntu 20.04/22.04 实例。
2. **网络**:配置包含公共子网的虚拟云网络 (VCN)。
3. **安全**:配置 Oracle 安全列表以允许端口 80 (TCP) 上的入站流量。
### 部署命令
```
# 访问 Server
ssh -i key.key ubuntu@
# 安装 Dependencies
sudo apt update
sudo apt install python3-pip python3-venv nginx -y
# 部署 Application
# (通过 SCP 传输 deploy.zip)
unzip deploy.zip
cd bb_platform
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 启动 Services
sudo systemctl start bb_platform
sudo systemctl restart nginx
```
包含截图、安全配置和故障排除的详细分步说明,请参阅 **[DEPLOYMENT.md](DEPLOYMENT.md)**。
## 管理指南
### 访问
导航至 `/login` 并使用管理员凭据进行身份验证,以访问 `/admin` 仪表板。
### 数据库管理
* **初始化**:数据库将在首次运行应用程序时自动初始化。
* **重置**:执行 `python scripts/reset_db.py` 以清除所有数据并重新初始化 schema。
* **迁移**:Schema 更改通常需要迁移脚本。有关无状态 schema 更新的示例,请参见 `add_category_public_column.py`。
### 密码恢复
如果失去访问权限,可以直接通过服务器控制台重置管理员密码:
```
cd ~/bb_platform
source venv/bin/activate
python3
>>> from app import app, db, User
>>> with app.app_context():
... u = User.query.filter_by(username='admin').first()
... u.password = 'NEW_STRONG_PASSWORD'
... db.session.commit()
```
## 项目结构
* `app.py`:核心应用程序逻辑和路由。
* `models.py`:数据库 schema 定义 (SQLAlchemy)。
* `config.py`:应用程序配置和环境变量。
* `requirements.txt`:Python 依赖清单。
* `run_prod.py`:使用 Waitress 的生产服务器 WSGI 入口点。
* `static/`:静态资源(CSS 样式、Vanilla JS 脚本、图像)。
* `templates/`:通过 Jinja2 渲染的 HTML 模板。
* `instance/`:数据库存储目录 (`ctf.db`)。
* `DEPLOYMENT.md`:全面的云端部署文档。
* `scripts/make_zip.py`:用于打包应用程序以供部署的构建脚本。
## 许可证
该项目在 GNU General Public License v3.0 (GPL-3.0) 下授权。有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 原作者
**Dhiptanshu Malik**
创建者与首席开发者
- GitHub:https://github.com/Dhiptanshu
- LinkedIn:https://www.linkedin.com/in/dhiptanshu
## 项目延续
该项目最初是为 GLS University 开发的,作为一个教育性质的夺旗赛 (CTF) 和 Bug Bounty 平台。
鼓励未来的学生和贡献者在 GNU GPL v3 许可证的条款下改进、扩展和维护该平台。
请尽可能保留原始的版权声明、许可证和 Git 历史记录。
© 2026 Dhiptanshu Malik
查看截图(点击展开)
### 参赛者体验     ### 管理与控制面板      标签:CTF平台, Flask, Python, SQLite, 安全培训, 数据可视化, 无后门, 逆向工具