mauricebauer/ctf-leaderboard

GitHub: mauricebauer/ctf-leaderboard

基于Django框架开发的CTF竞赛计分板系统,支持选手提交Flag并实时展示排行榜。

Stars: 3 | Forks: 4

# 🚩 CTF 排行榜 本项目的目标是提供一个简单的网页,允许 CTF 参与者提交他们找到的 flag。此外,对所有已找到 flag 的实时概览也能给游戏带来更强的竞技感。 此应用使用 Python 3 和 Django Web 框架编写。 ![截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1a0a8910dd175100.png) ## 功能 - 参与者可以提交在 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开发, 前端界面, 后端开发, 夺旗赛, 安全竞赛, 实时更新, 开源项目, 排行榜, 数据库迁移, 无后门, 比赛平台, 记分板, 逆向工具