之前搭建了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