1.非web题放置
1.放置题目
登陆创建的管理员账号后,然后点击右上角 Admin panel -> Challenges ,然后点击challenges旁边的+号
然后点击create
然后题目创建成功
但是这种方式大多数类型题目,web题无法通过此方式创建
2.使用github上web
#安装最新版本的docker
curl -s https://get.docker.com/ | sh
# 运行docker服务
service docker start
# 安装docker compose
pip install docker-compose
3.CTF赛题环境
github上有许多CTF题库的开源仓库,但有些整理的未必好,为了遵守容易部署的原则,我选择了CTFTraining https://github.com/CTFTraining/CTFTraining
1.下载CTFTraining中的题库,这里要注意CTFTraining整个项目较大,题目建议一个个下,有选择性的拉取,下面以拉取第一个题目为例
mkdir CTFTraining
cd CTFTraining
git clone https://github.com/CTFTraining/0ctf_2016_unserialize.git
2.修改docker-compose.yml文件,其配置文件的结构其他题目也基本是下面这个结构:
# 0ctf 2016 piapiapia
version: "2"
services:
web:
build: .
image: ctftraining/0ctf_2016_unserialize
environment:
- FLAG=flag{test_flag}
restart: always
ports:
- "150.158.166.214:8090:80"
此处需要修改两个地方:一个是flag的值,写一个自己喜欢的字符串即可,另一个地方是下面的地址和端口号,地址改为0.0.0.0 端口号选一个未被占用的即可。例如:服务器公网IP:8090:80
3.启动改题目
cd 0ctf_2016_unserialize
docker-compose up -d
4.访问和配置CTFd的Challenge 访问http://150.158.166.214:8090 (此处改成自己的ip和端口号并且安全组需开放此端口),成功能显示页面即可。 进入刚刚搭建好的CTFd中Admin->Challenges,添加一个新的挑战,类型选standard, 填写好题目名字、内容和分值等。
5.配置flag 进入到刚刚创建的挑战中,在左侧填上刚刚配置好的flags
3.自己设计web题目放置CTFd上
1.使用静态靶场放置web题
把web题放置另一服务器上,放置链接然后访问(这种方式放置题目简单,但是消耗资源。)
2.使用动态靶场放置web题
使用赵师傅的插件来完成目标,参考赵师傅博客