之前搭建了ctfd靶场,现在尝试安装下GZCTF,看下两者有什么区别,安装GZCTF,查看官方文档是建议通过docker + K8s分离部署的方式部署GZCTF。
这里直接用https://github.com/MoRan23/GZCTF-Auto这个项目自动化部署。支持单 docker
以及 docker+k3s
部署
我是采用 docker+k3s
部署方式,需准备两台ubuntu机器,一台安装docker,一台安装k3s。
两台机器都是ubuntu20.04版本
ip:192.168.31.171
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
在安装有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