概述

CTFd是一款基于Apache2.0协议的开源CTF平台,最新版本目前为1.20。该平台功能强大,基本上能够满足目前的CTF竞赛需求,同时,该平台提供了强大的插件功能,可以自己进行插件开发实现自己的功能。

安装

常规安装

在CTF Wikihttps://github.com/CTFd/CTFd/wiki/Getting-Started 中写了详细的安装步骤。

具体命令

# 克隆库
git clone https://github.com/CTFd/CTFd.git
cd CTFd/
# 安装操作系统需要安装的包
./prepare.sh
# 安装python需要的包
pip install -r requirements.txt
# 运行CTFd
python serve.py

推荐使用 virtualenv 构造虚拟python库,否则有可能造成多重依赖。

docker安装

git clone https://github.com/CTFd/CTFd.git
cd CTFd/
docker-compose up

然后访问链接 http://localhost:8000 即可

配置

在CTFd默认配置下不用修改直接可以使用,但是像我想使用关系型数据库mysql就必须进行配置文件修改。配置文件在CTFd根目录下CTFd/config.py中。

修改数据库配置

#SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///{}/ctfd.db'.format(os.path.dirname(os.path.abspath(__file__)))
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@localhost:3306/ctfd'

如果需要启用redis,则修改

class TestingConfig(Config):
    SECRET_KEY = 'AAAAAA'
    PRESERVE_CONTEXT_ON_EXCEPTION = False
    TESTING = True
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = os.environ.get('TESTING_DATABASE_URL') or 'sqlite://'
    SERVER_NAME = 'localhost'
    UPDATE_CHECK = False
    CACHE_REDIS_URL = None
    CACHE_TYPE = 'simple'

CACHE_REDIS_URL为redis连接,同时最好能修改SECRET_KEY值,让它做到独一无二,防止一些暴力猜解的问题。

使用效果


插件使用

模板修改

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐