Nik0-Byt3/RootlessCtf
GitHub: Nik0-Byt3/RootlessCtf
一个基于 Django 和 PostgreSQL 的网络安全夺旗赛学习平台,帮助用户在交互式挑战中掌握攻防技能。
Stars: 0 | Forks: 0
# RootlessCTF
## 📌 描述
**RootlessCTF** 是一个专注于通过 **CTF(夺旗赛)** 风格挑战来学习网络安全的 Web 平台。
该系统允许用户注册、完成挑战、提交 flag、获取经验值并升级。
应用程序实现了:
- 完整的用户认证
- 个人资料管理
- 可筛选的挑战目录
- 进度追踪
- 带惩罚机制的提示系统
- Django 后端 + PostgreSQL
# 🖼️ 截图
## 首页
## 仪表盘
## 挑战目录
## 挑战页面
# 🚀 功能特性
- Django 认证系统
- 密码哈希
- 会话管理
- 用户仪表盘
- 等级系统
- 挑战管理
- 多 flag 验证
- 带惩罚机制的提示系统
- 挑战进度持久化
- 按类别/难度/状态筛选
- 挑战搜索
- Django ORM
- PostgreSQL 后端
- 三层架构
# 🏗️ 技术栈
| 组件 | 技术 |
|---|---|
| 后端 | Python |
| 框架 | Django |
| 数据库 | PostgreSQL |
| 前端 | HTML、CSS、JavaScript |
| 版本管理 | Git + GitHub |
# 📂 架构
应用程序遵循经典的三层架构。
## 1. 表示层
通过以下方式管理:
- Django Templates
- HTML/CSS/JS
负责页面的动态渲染。
## 2. 逻辑层
由 Django 管理:
- HTTP 路由
- 业务逻辑
- 认证
- 会话管理
- flag 验证
- ORM
## 3. 数据层
通过 PostgreSQL 管理:
- 用户
- 挑战
- flag
- 提示
- 进度
- 分数
# 🔐 Flag 系统
Flag:
- 区分大小写
- 遵循以下格式:
```
KEY{}
```
- 在后端进行验证
- 保存部分进度
- 只有在所有 flag 正确后才完成挑战
# 💡 提示系统
每个提示:
- 与特定 flag 关联
- 解锁后保持持久化
- 对最高可得分数施加以下惩罚:
```
-5 punti
```
# 🗄️ 数据库架构
```
Utente(id, nome, cognome, username, email, password, f_profilo, punteggio, livello)
Sfida(id, titolo, descrizione, l_difficolta, p_massimo, immagine, id_categoria)
Categoria(id, nome)
Flag(id, chiave, id_sfida)
Indizio(id, testo, id_flag)
Partecipa(id_utente, id_sfida, stato, punteggio_ottenuto)
Consegna(id_utente, id_flag)
```
# 📊 挑战状态
每个挑战可以处于以下状态之一:
| 状态 | 描述 |
|---|---|
| 未开始 | 未提交任何 flag |
| 未完成 | 至少一个 flag 正确 |
| 已完成 | 所有 flag 已验证 |
# 👤 用户管理
用户可以:
- 修改:
- 名字
- 姓氏
- 邮箱
- 更改密码
- 监控:
- 等级
- 分数
- 已完成的挑战
- 进行中的挑战
# 🔒 安全
已实现的功能:
- 密码哈希
- Django 认证
- 会话管理
- 输入验证
- 挑战访问保护
- 管理面板保护
# 👨💻 作者
D'Addato Nicolò
# 📜 许可证
基于 MIT 许可证发布。
## 仪表盘
## 挑战目录
## 挑战页面
# 🚀 功能特性
- Django 认证系统
- 密码哈希
- 会话管理
- 用户仪表盘
- 等级系统
- 挑战管理
- 多 flag 验证
- 带惩罚机制的提示系统
- 挑战进度持久化
- 按类别/难度/状态筛选
- 挑战搜索
- Django ORM
- PostgreSQL 后端
- 三层架构
# 🏗️ 技术栈
| 组件 | 技术 |
|---|---|
| 后端 | Python |
| 框架 | Django |
| 数据库 | PostgreSQL |
| 前端 | HTML、CSS、JavaScript |
| 版本管理 | Git + GitHub |
# 📂 架构
应用程序遵循经典的三层架构。
## 1. 表示层
通过以下方式管理:
- Django Templates
- HTML/CSS/JS
负责页面的动态渲染。
## 2. 逻辑层
由 Django 管理:
- HTTP 路由
- 业务逻辑
- 认证
- 会话管理
- flag 验证
- ORM
## 3. 数据层
通过 PostgreSQL 管理:
- 用户
- 挑战
- flag
- 提示
- 进度
- 分数
# 🔐 Flag 系统
Flag:
- 区分大小写
- 遵循以下格式:
```
KEY{}
```
- 在后端进行验证
- 保存部分进度
- 只有在所有 flag 正确后才完成挑战
# 💡 提示系统
每个提示:
- 与特定 flag 关联
- 解锁后保持持久化
- 对最高可得分数施加以下惩罚:
```
-5 punti
```
# 🗄️ 数据库架构
```
Utente(id, nome, cognome, username, email, password, f_profilo, punteggio, livello)
Sfida(id, titolo, descrizione, l_difficolta, p_massimo, immagine, id_categoria)
Categoria(id, nome)
Flag(id, chiave, id_sfida)
Indizio(id, testo, id_flag)
Partecipa(id_utente, id_sfida, stato, punteggio_ottenuto)
Consegna(id_utente, id_flag)
```
# 📊 挑战状态
每个挑战可以处于以下状态之一:
| 状态 | 描述 |
|---|---|
| 未开始 | 未提交任何 flag |
| 未完成 | 至少一个 flag 正确 |
| 已完成 | 所有 flag 已验证 |
# 👤 用户管理
用户可以:
- 修改:
- 名字
- 姓氏
- 邮箱
- 更改密码
- 监控:
- 等级
- 分数
- 已完成的挑战
- 进行中的挑战
# 🔒 安全
已实现的功能:
- 密码哈希
- Django 认证
- 会话管理
- 输入验证
- 挑战访问保护
- 管理面板保护
# 👨💻 作者
D'Addato Nicolò
# 📜 许可证
基于 MIT 许可证发布。标签:Capture The Flag, CMS安全, CSS, CTF平台, Django, Git, HTML, JavaScript, meg, ORM, PostgreSQL, Python, 个人资料管理, 会话管理, 信息安全, 后端开发, 多层次验证, 多标签筛选, 多模态安全, 挑战分类, 挑战系统, 排行榜, 排行榜系统, 提示系统, 数据可视化, 数据库管理, 无后门, 测试用例, 渐进式学习, 用户认证, 经验等级, 网络安全, 网络安全研究, 进度追踪, 逆向工具, 隐私保护, 难度分级