Thorgathis/CTFd-Modules

GitHub: Thorgathis/CTFd-Modules

CTFd 3.x 插件,为比赛题目提供模块化分组管理、私有模块邀请码访问控制以及排行榜过滤功能。

Stars: 3 | Forks: 1

# CTFd 模块 适用于 CTFd 3.x 的插件,通过私有访问、invite 码和排行榜显示控制,增加模块(题目集合)系统。 ## 功能特性 1. 按模块和类别对题目进行分组。 2. 模块状态:`public`、`private`、`locked`。 3. 访问私有模块: - 通过管理后台手动操作, - 通过 invite 码。 4. 面向参赛者的独立页面: - 模块列表, - 模块页面, - join 页面, - locked 页面。 5. 控制主排行榜 `/challenges`: - 显示所有题目, - 仅显示模块内的题目, - 仅显示模块外的题目。 6. 兼容多种主题(`auto`、`pixo`、`core-beta`),并在模态框中稳定运行 `Solves` 标签页。 ## 主要 URL ### 面向参赛者 - `/modules` — 模块列表。 - `/modules/` — 模块题目。 - `/modules/join?code=MOD-XXXXXXXX` — 通过代码进入私有模块。 ### 面向管理员 - `/plugins/ctfd_modules/admin/modules` — 模块列表及管理。 - `/plugins/ctfd_modules/admin/categories` — 模块分类。 - `/plugins/ctfd_modules/admin/settings` — 插件设置。 ## 安装说明 **需求:CTFd 3.x** 1. 将 `ctfd_modules/` 文件夹复制到 `CTFd/plugins/ctfd_modules/`。 2. 重启 CTFd。 3. 打开 `Admin -> Plugins -> CTFd Modules`。 ## 配置 ### 插件设置 ![Settings](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/55f42c7168171251.png) | 选项 | 内容 | | :--- | :--- | | **Enable Modules plugin** | 启用/禁用插件 | | **Main challenge board** | `GET /api/v1/challenges` 的过滤模式:`all`、`only_modules`、`only_unassigned` | | **Redirect /challenges to /modules** | 将参赛者重定向到模块页面 | | **Invite code length** | 私有模块的 invite 码长度 | | **Locked module message** | locked 模块页面的提示文本 | | **UI theme compatibility** | 界面兼容模式:`auto`、`pixo`、`core-beta` | ### 模块列表(管理后台) ![Modules List](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7d87778400171252.png) 支持的操作: - 按状态和类别筛选; - 创建新模块; - 进入模块编辑; - 删除模块。 ### 模块卡片(编辑) ![Module Edit](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/3ccb7cd4c4171254.png) | 字段 | 描述 | | :--- | :--- | | **Name** | 模块名称 | | **Category** | 模块类别 | | **Status** | `public` / `private` / `locked` | | **Banner URL** | 模块卡片中的横幅 | | **Order** | 列表中的排序 | | **Invite Code** | private 模块的访问代码 | ### 将题目关联到模块 ![Challenge Edit](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9ba9e64183171256.png) 支持两种流程: 1. 创建题目时选择模块,保存后它会出现在编辑页面。 2. 编辑题目时可以更改或移除模块。 ## 用户页面 ### 模块列表 ![User Modules](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0f1baf903f171257.png) ### 私有模块 Join 页面 ![User Join](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9cefd538b7171300.png) ### Locked 页面 ![User Locked](https://raw.githubusercontent.com/Thorgathis/CTFd-Modules/master/assets/locked.png) ### 模块题目页 ![User Module Board](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/668d870968171333.png)
标签:CTFd, Flask, Python, Streamlit, Syscall, Web开发, 后台管理, 安全教育, 开源, 插件, 数据可视化, 无后门, 模块管理, 私有访问, 竞赛平台, 系统扩展, 网络安全, 访问控制, 调试辅助, 逆向工具, 邀请码, 隐私保护, 题目分组