开源CTF平台CTFd的搭建与性能测试
目录
概述
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
值,让它做到独一无二,防止一些暴力猜解的问题。
使用效果