CTFd-Whale 项目教程

CTFd-Whale 项目教程

CTFd-Whale项目地址:https://gitcode.com/gh_mirrors/ct/CTFd-Whale

1. 项目的目录结构及介绍

CTFd-Whale 是一个用于 CTFd 平台的插件,允许用户为每个挑战启动独立的 Docker 实例。以下是项目的目录结构及其介绍:

CTFd-Whale/
├── admin.py
├── api.py
├── config.py
├── docker.py
├── __init__.py
├── models.py
├── templates/
│   └── admin/
│       └── plugins/
│           └── whale.html
├── utils.py
└── views.py
  • admin.py: 管理界面相关的功能。
  • api.py: 提供 API 接口。
  • config.py: 配置文件处理。
  • docker.py: Docker 相关的操作。
  • __init__.py: 插件初始化文件。
  • models.py: 数据库模型定义。
  • templates/: 包含 HTML 模板文件。
  • utils.py: 工具函数。
  • views.py: 视图处理。

2. 项目的启动文件介绍

CTFd-Whale 的启动文件主要是 __init__.py,这个文件负责插件的初始化和注册。以下是 __init__.py 的主要内容:

from CTFd.plugins import register_plugin_assets_directory
from CTFd.plugins.challenges import CHALLENGE_CLASSES
from . import views, api

def load(app):
    app.register_blueprint(views.blueprint)
    app.register_blueprint(api.blueprint)
    register_plugin_assets_directory(app, base_path='/plugins/ctfd-whale/assets/')
    CHALLENGE_CLASSES['dynamic_docker'] = 'ctfd_whale.models.DynamicDockerChallenge'
  • register_plugin_assets_directory: 注册插件的静态资源目录。
  • app.register_blueprint: 注册蓝图,包括视图和 API。
  • CHALLENGE_CLASSES: 注册新的挑战类型 dynamic_docker

3. 项目的配置文件介绍

CTFd-Whale 的配置文件主要是 config.py,这个文件包含了插件的配置选项。以下是 config.py 的主要内容:

class WhaleConfig:
    FRP_HTTP_DOMAIN = 'frp.example.com'
    FRP_HTTP_PORT = 80
    FRP_HTTP_SUBDOMAIN_HOST = 'challenges'
    FRP_HTTP_SUBDOMAIN_SUFFIX = '.challenges.frp.example.com'
    FRP_HTTP_SUBDOMAIN_WILDCARD = True
    FRP_HTTP_SUBDOMAIN_ENABLED = True
    FRP_HTTP_SUBDOMAIN_LENGTH = 8
    FRP_HTTP_SUBDOMAIN_CHARSET = 'abcdefghijklmnopqrstuvwxyz0123456789'
    FRP_HTTP_SUBDOMAIN_PREFIX = 'ctf'
    FRP_HTTP_SUBDOMAIN_SUFFIX = '.challenges.frp.example.com'
    FRP_HTTP_SUBDOMAIN_WILDCARD = True
    FRP_HTTP_SUBDOMAIN_ENABLED = True
    FRP_HTTP_SUBDOMAIN_LENGTH = 8
    FRP_HTTP_SUBDOMAIN_CHARSET = 'abcdefghijklmnopqrstuvwxyz0123456789'
    FRP_HTTP_SUBDOMAIN_PREFIX = 'ctf'
    FRP_HTTP_SUBDOMAIN_SUFFIX = '.challenges.frp.example.com'
    FRP_HTTP_SUBDOMAIN_WILDCARD = True
    FRP_HTTP_SUBDOMAIN_ENABLED = True
    FRP_HTTP_SUBDOMAIN_LENGTH = 8
    FRP_HTTP_SUBDOMAIN_CHARSET = 'abcdefghijklmnopqrstuvwxyz0123456789'
    FRP_HTTP_SUBDOMAIN_PREFIX = 'ctf'
    FRP_HTTP_SUBDOMAIN_SUFFIX = '.challenges.frp.example.com'
    FRP_HTTP_SUBDOMAIN_WILDCARD = True
    FRP_HTTP_SUBDOMAIN_ENABLED = True

CTFd-Whale项目地址:https://gitcode.com/gh_mirrors/ct/CTFd-Whale

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林菁琚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值