本文最后更新于167 天前,其中的信息可能已经过时,如有错误请发送邮件到1157395387@qq.com
前言废话
最开始想学搭建CTF平台完全是想着学校有服务器了,下一届大一来了搞个靶场让他们练练,毕竟最开始都是在服务器上进行比赛或者练习的。所以学了两三天的如何搭建如何美化
正文
首先我们需要知道搭建CTFd需要什么东西,我这边通过网上差了不少文献,最终发现最主要的还是先起docker我们可以通过在服务器直接输入指令然后安装ctfd平台
docker run --name ctfd -dit -p 8000:8000 ctfd/ctfd

这种情况就是平台安装完成,用服务器加端口来访问ctfd,第一次进入需要设置管理员账号
http://<你的服务器IP>:8000
我们需要一个docker的可视化工具,这样方便我们管理容器,这个可视化工具是portainer我们通过下属指令安装创建一个卷用来保存Portainer的数据
docker volume create portainer_data
安装完成后运行。
docker run -d -p 10000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

运行完成后显示这种情况说明我服务器没有镜像文件所以在自动获取,最后那串ID是我容器的ID说明已经成功运行了,如果这个时候你想访问的话,可以通过http://{服务器的ip}:9000来访问。
第一次进入需要设置管理员密码
以上就完成了搭建,但是我想要CTFd的界面全部汉化于是我又通过进入到CTFd的容器里
进入容器
docker exec -it ctfd bash
查找语言包位置
ls /CTFd/CTFd/translations
#我是之前下过的如果没有下过就需要自行下载
cd /CTFd/CTFd/translations
git clone https://github.com/glzjin/CTFd-cn-translation zh
通过编辑器打开配置文件
nano /opt/CTFd/CTFd/config.py
修改内容
LANGUAGES = {
'en': 'English',
'zh': '简体中文'
}
DEFAULT_LANGUAGE = 'zh'
保存退出后重启容器
exit # 退出容器
docker restart ctfd
CTFd的美化可以在管理员界面的主题找到然后自己写一个也可以,让AI写也可以或者直接网上找一个都可以。
我是因为没有安装git安装的话可以跳过这3部分,以root的身份进入
docker exec -it --user root ctfd bash
安装git看好系统
Debian/Ubuntu 系统
apt-get update && apt-get install -y git
Alpine 系统
apk add git
验证安装版本
git --version
到这一步就是安装完git后,需要做的下载主题
先是打开目录
cd /opt/CTFd/CTFd/themes
下载git文件
git clone https://github.com/hmrserver/CTFd-theme-pixo.git
这个URL你可以根据github里面找到的主题自行更换URL
退出并重新启动docker验证安装
退出
exit
重新启动
docker restart ctfd
进入容器
docker exec -it ctfd bash
验证是否有你下载的主题文件
ls /opt/CTFd/CTFd/themes
exit
应用完主题后需要自己管理员界面配置pages写一个HTML

还可以在里面添加主页面图片等内容,如果自己不会写可以让AI帮忙写一个,建议GPT去写最后呈现的效果就是这样

猫猫你好