之前搭建了ctfd靶场,现在尝试安装下 GZCTF,看下两者有什么区别,安装 GZCTF,查看官方文档是建议通过 docker + K8s 分离部署的方式部署 GZCTF。
这里直接用https://github.com/MoRan23/GZCTF-Auto 这个项目自动化部署。支持单 docker
以及 docker+k3s
部署
我是采用 docker+k3s
部署方式,需准备两台 ubuntu 机器,一台安装 docker,一台安装 k3s。
两台机器都是 ubuntu20.04 版本
安装 k3s#
ip:192.168.31.171
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
安装 GZCTF 平台#
在安装有 docker 那台机器上安装,ip 地址为:192.168.31.254
稍微等待,部署成功
访问http://192.168.31.254:81,用帐号密码登录
题目测试#
拿下面这个 docker 靶场测试
ctftraining/qwb_2019_supersqli:latest
点击左侧管理
进入后,点击新建比赛,填写比赛标题名字
新建完成后,如下
点击右侧图标,来到如下页面
点击题目管理,新建题目
可选择题目类型
选择动态容器,来到如下页面
重点关注容器镜镜像,创建测试容器,填写 docker 镜像地址,点击创建测试容器,如下图:
启用题目
接下来,要访问题目,需要创建一个队伍,然后把相应的人添加进队伍
在信息审核处,可开启队伍报名免审核,这样报名某个队伍就需要要管理员审核了,否则加入则需要管理同意,未进入队伍的人不能访问题目。
点击队伍管理,可以创建队伍和加入队伍
加入队伍,需要其他队员发邀请码进入
点击创建队伍
创建完成后,可以生成邀请码
回到首页,即可报名参加比赛
出现上述问题,说明比赛未开启免审核,需要管理员去后台审核
重新用 test 账户登录,现在就可以进入比赛了
进入比赛,创建容器后,来到如下图
这里给的 ws 连接,这是因为启用了 tcp over ws 代理模式
如果要访问,需要下载https://github.com/XDSEC/WebSocketReflectorX/releases 客户端
安装完成,打开输入 ws 连接地址
会给出题目 ip 加端口
然后访问题目用这个连接http://127.0.0.1:64143 / 访问题目
语言切换#
参考#
https://github.com/XDSEC/WebSocketReflectorX/releases
https://docs.ctf.gzti.me/zh
https://github.com/GZTimeWalker/GZCTF
https://github.com/MoRan23/GZCTF-Auto