GZCTF比赛平台搭建——单Docker部署
前言
GZCTF,一个开源的网络安全竞赛平台,它巧妙地融合了React.js前端技术和Django后端架构,为用户提供了一个通过实战演练提升安全技能的宝贵舞台。无论你是初学者、教育机构还是企业培训部门,GZCTF都能满足你的需求,其丰富的功能如权限控制、加密通信以及自定义赛事等,将带给你前所未有的使用体验。
官方文档:https://docs.ctf.gzti.me/zh/quick-start
操作系统:ubuntu-22.04.4(已重装)
1、换源
从0开始,换源
vim /etc/apt/sources.list
修改为如下内容
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
更新apt源:
apt update
2、安装docker
继去年Docker Hub被封锁后,各大NAS的注册表均出现问题,例如群晖的Docker套件注册表无法连接(更新至DSM7.2版本后恢复)。
而在今年2024年6月初(约2024.06.06),NAS中最重要的工具Docker又面临无法使用的问题。
常用镜像站:阿里云、科大、南大、上交等,全部挂掉。
2.1更新系统软件包:
sudo apt update
2.2安装已经配置的镜像源最新版:
apt install docker-ce docker-ce-cli containerd.io
2.3换docker源
vim /etc/docker/daemon.json
修改为如下内容
{
"registry-mirrors": [
"https://ustc-edu-cn.mirror.aliyuncs.com/",
"https://ccr.ccs.tencentyun.com/",
"https://docker.m.daocloud.io/",
"https://dockerhub.azk8s.cn",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn",
"https://mirror.iscas.ac.cn",
"https://dockerhub.icu",
"https://docker.anyhub.us.kg",
"https://hub.gog.email",
"https://dockerpull.com",
"https://atomhub.openatom.cn"
]
}
添加好了之后,重启docker服务
sudo systemctl restart docker
或者
sudo systemctl restart docker.service //如果一个命令不行就换上面一个
查看docker信息
docker info
配置docker开机自启
sudo systemctl restart docker
或者
systemctl enable docker.service //如果一个命令不行就换上面一个
3. GZCTF的安装
3.1 在当前文件夹下(就是你GZCTF靶场的配置目录),创建 appsettings.json:
vim appsettings.json
{
"AllowedHosts": "*",
"ConnectionStrings": {
"Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=GzctfAuto233", // 此处Password内容可以自定义(安全起见,至少包含数字及字母大小写)
"RedisCache": "cache:6379,abortConnect=false"
},
"EmailConfig": { // 邮件配置,用于找回密码之类的,这里就用163举例
"SendMailAddress": "demo@163.com", // 邮件发送者
"UserName": "demo@163.com", // SMTP用户名,就是你开启SMTP的邮箱
"Password": "SMTP_PASSWORD", // 你得STMP服务器密码,唯一,
"Smtp": {
"Host": "smtp.163.com", // 163邮箱的stmp服务器地址
"Port": 465 // stmp端口
}
},
"XorKey": "GzctfAuto233", // 此处XorKey可以自定义
"ContainerProvider": {
"Type": "Docker",
"PortMappingType": "Default",
"EnableTrafficCapture": false,
"PublicEntry": "XXX.XXX.XXX.XXX", // 域名或IP配置,用于容器生成,域名不带http/https
"DockerConfig": {
"SwarmMode": false,
"Uri": "unix:///var/run/docker.sock"
}
},
"RequestLogging": false,
"DisableRateLimit": true,
"RegistryConfig": {
"UserName": "DOCKER_USERNAME",
"Password": "DOCKER_PASSWORD",
"ServerAddress": "DOCKER_ADDRESS"
},
"CaptchaConfig": {
"Provider": "None",
"SiteKey": "",
"SecretKey": "",
"GoogleRecaptcha": {
"VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify",
"RecaptchaThreshold": "0.5"
}
},
"ForwardedOptions": {
"ForwardedHeaders": 5,
"ForwardLimit": 1,
"ForwardedForHeaderName": "X-Forwarded-For",
"TrustedNetworks": [
"0.0.0.0/0"
]
}
}
3.2 在当前文件夹下,创建 docker-compose.yml:
vim docker-compose.yml
3.3 将以下内容保存为 docker-compose.yml 文件,并替换为你的初始化参数(注释需删除,保存后可能会报错):
version: "3.7"
services:
gzctf:
image: registry.cn-shanghai.aliyuncs.com/gztime/gzctf:latest
restart: always
environment:
- "GZCTF_ADMIN_PASSWORD=<Password>" # <Password>换成账户管理员密码,管理员账户为admin
# choose your backend language `en_US` / `zh_CN` / `ja_JP`
- "LC_ALL=zh_CN.UTF-8"
ports:
- "80:8080"
volumes:
- "./data/files:/app/files"
- "./appsettings.json:/app/appsettings.json:ro"
# - "./kube-config.yaml:/app/kube-config.yaml:ro"
- "/var/run/docker.sock:/var/run/docker.sock"
depends_on:
- db
- cache
cache:
image: redis:alpine
restart: always
db:
image: postgres:alpine
restart: always
environment:
- "POSTGRES_PASSWORD=GzctfAuto233" # 数据库密码,务必要和appsettings.json中的配置一致
volumes:
- "./data/db:/var/lib/postgresql/data"
3.4 在当前文件夹执行命令,构建并启动GZCTF:
docker compose up -d
等他安装完成就好,这里我已经安装好了
查看GZCTF启动状态,我配置的是8888端口,这里你们可以直接配置为80
docker ps
然后访问你的服务器地址就好,默认为80端口
这里可以跳过,如果不想要80被占用,可以添加一个反向代理8888到你的IP地址,我用的宝塔面板
国庆假期真实有效,欢迎各位出题人投稿,出题者经审核通过我们将会给予一定的现金奖励【需要Writeup】,题目版权归作者所有,题目也会写上作者的名字,供广大CTFSer们学习使用,并且会永远保存在本平台,本次活动我们将会在国庆假期举行,欢迎各位来参与,我会争取赞助更多的奖品给大家,力争人人都有参与奖,这就是本次赛点。
http://ctf.54cto.com/
新建比赛
管理员登录后找到这个设置
添加标题,选择日期
添加比赛内容
这样就可以直接添加了
查看详细,奖励我暂时只想到这些,这些都是用我自己工资给大伙儿送,到时候看看赞助方怎么说,争取人人都有参与奖
创建队伍
但是现在还不能报名,里面也没有题目创建队伍
这样就可以报名了
新建题目
找到比赛的题目管理
这里可以选择题目类型,这里我们添加一个Misc题目,题目类型为静态附件
点击编辑附件及flag
添加赛题附件和flag固定答案
等你设置的比赛日期到了,报名之后就可以查看赛题了(这里为了演示,我换了网盾的平台作为参考)
泷羽Sec欢迎各位CTFSer和大学生们来出题,出题者经审核通过我们将会给予一定的现金奖励【需要Writeup】,题目版权归作者所有,题目也会写上作者的名字,供广大CTFSer们学习使用,并且会永远保存在本平台,本次活动我们将会在国庆假期举行,欢迎各位来参与,我会争取赞助更多的奖品给大家,力争人人都有参与奖,感谢各位小伙伴们的关注。
本公众号致力于提供网络安全自学的文章,特别是针对自学网安迷路的朋友们,如果您自学网络安全的路上遇到了什么困难,欢迎添加作者进群咨询。
往期推荐
111
本站内容部分转载于互联网,并不代表本站立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理! 拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
暂无评论内容