mauricebauer/ctf-leaderboard
GitHub: mauricebauer/ctf-leaderboard
基于Django框架开发的CTF竞赛计分板系统,支持选手提交Flag并实时展示排行榜。
Stars: 3 | Forks: 4
# 🚩 CTF 排行榜
本项目的目标是提供一个简单的网页,允许 CTF 参与者提交他们找到的 flag。此外,对所有已找到 flag 的实时概览也能给游戏带来更强的竞技感。
此应用使用 Python 3 和 Django Web 框架编写。

## 功能
- 参与者可以提交在 CTF 挑战中找到的 flag
- 排行榜概览页面支持实时刷新
- 通过 Django 管理 UI(位于 `/admin`)进行简单的管理
- 通过数据库中的 `Content` 模型自定义着陆页面,用于展示说明、链接和截图
## 快速开始
为该应用创建并激活一个虚拟环境:
```
$ python3 -m venv venv
$ source venv/bin/activate
```
安装所有必要的依赖:
```
$ python3 -m pip install -r requirements.txt
```
将 `.env.dist` 文件复制为 `.env` 文件并进行适当的调整(`SECRET_KEY` 很重要)。
通过迁移创建数据库,并为管理 UI(位于 `/admin`)创建一个超级用户:
```
$ python3 manage.py migrate
$ python3 manage.py createsuperuser
$ python3 manage.py collectstatic
```
运行服务器:
```
$ python3 manage.py runserver
```
**参与者名称格式**(`name`,例如截图中的 `"Group B"`):最多 20 个字符
**自定义名称格式**(`custom_name`,例如截图中的 `"Maurice, Gabriel"`):最多 40 个字符 `[a-zA-Z0-9_ ,]*`
**Flag 格式**(`secret`):最多 200 个字符 `[a-zA-Z0-9_]+`
## 功能构思
这是一些用户请求但尚未实现的功能列表。欢迎你实现其中的一项并提交 pull request。谢谢!提示:我们使用 `autopep8` 大致遵循 PEP 8 规范。
- 为最先找到所有 flag 的 CTF 优胜者加冕
- 允许创建多个页面(不仅仅是一个主页)
- 通过可用 CTF 列表或唯一 URL 支持多个 CTF 同时进行
标签:Django, Django Admin, DNS解析, Flag提交, Python, Syscall, Web开发, 前端界面, 后端开发, 夺旗赛, 安全竞赛, 实时更新, 开源项目, 排行榜, 数据库迁移, 无后门, 比赛平台, 记分板, 逆向工具