本文主要介绍snowctf主要使用方法,本平台涉及到涉及到web等题目容器化部署题目,所以主要介绍如何创建动态的web类型题目。
前置条件
你需要有打包好的web题目镜像,若没有可参考题目 CTF赛题-wdb_2018_fakebook,本次我们就以wdb_2018_fakebook为例来演示如何部署题目。
创建题目
进入后台管理找到题目管理配置-题目
然后创建题目,根据提示设置题目然后,因为我们要创建动态的web题目,所以选择docker-compsoe部署,然后创建docker-compsoe题目配置,我用wdb_2018_fakebook为例直接把docker-compsoe.yml复制过来。并做以下是原本的yml文件:
# 网鼎杯 2018 fakebook
version: "2"
services:
web:
image: ctftraining/wdb_2018_fakebook
restart: always
ports:
- "127.0.0.1:8306:80"
environment:
- FLAG=flag{flag_test}
将FLAG=flag{flag_test}修改为FLAG=$FLAG,因为ctftraining/wdb_2018_fakebook题目在启动是后读取环境变量FLAG值,snowctf内置的flag值参数为FALG,若使用environment读取环境变量写成$FLAG即可读取。端口格式为80:80, 第二个80是容器内部的端口,第一个端口是映射到外部主机端口,外部端口可填任意端口,因为创建容器后系统会随机分配一个外部端口
version: "2"
services:
web:
image: ctftraining/wdb_2018_fakebook
ports:
- "80:80"
environment:
- FLAG=$FLAG
然后根据其它提示设置好对应参数即可
创建比赛
我们有了题目,就可以创建比赛啦,当然没有题目也能创建比赛。
设置比赛参数,选择此次比赛所需要的题目即可
创建成功后就可以访问报名链接和比赛环境链接
当然现在访问链接不是真实的环境,需要找到后台管理站点配置,修改站点,ps:是修改原来的example.com,而不是新添加一个,若新填加后会报错,修改成对应的环境IP或者域名即可。修改成功后就可以竞赛配置处访问报名链接。
访问首页可查看到比赛
创建DOCKER引擎
此时比赛已经创建成功但是web题目容器环境还不能共用户使用,需要在后台配置docker引擎。平台考虑到安全性提供了两种题目环境部署方式: 1. 题目部署在平台本地 2. 题目部署在远程服务器
以上两种可根据实际情况选择,当然建议第二种,这样题目环境服务器不影响竞赛平台,资源利用率高且安全,缺点成本高、配置难度较高。 以下演示第一种方式: 找到容器管理——docker引擎配置,选择本地模式配置,地址填竞赛平台IP地址(即部署此项目的服务器公网IP),内存限制(MB):500MB,CPU:1或者0.5或者2 根据服务器情况填
进行比赛
最后创建容器就可以开始CTF之路啦
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://www.secsnow.cn/blog/subject/article/snowctf-set/
许可协议:署名-非商业性使用 4.0 国际许可协议