Jeffrey的博客 Jeffrey的博客

左脑编程,右脑写诗

目录
从零开始搭建CTF靶场
/      

从零开始搭建CTF靶场

最近在内网搭建了一个CTF靶场,用的是CTFd这个框架,网上资料也挺全,整个搭建过程还是比较顺利,所以记录一下搭建过程。

前期准备

  • docker下载
  • docker-compose下载
  • git的下载
  • CTFd下载
  • CTFTraining题库下载
  • CTFd汉化包下载

步骤一:docker、docker-compose安装

docker和docker-compose的安装,我曾在《docker-compose部署Solo博客的详细介绍》这篇文章里介绍过,在这就不多赘述,大家可以通过访问该文,来看具体操作过程。

步骤二:git安装和配置

git的好处就是为了方便的下载后续的几个资源包,安装配置步骤如下。

1.安装git

yum install git

2.安装依赖库

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc-c++ perl-ExtUtils-MakeMaker

3.配置git

git config --global user.name "yourname"
git config --global user.email "email@example.com"

4.生成SSH证书

ssh-keygen -t rsa -C "email@example.com" # 打完之后无脑确认
cd ~/.ssh # 进入目录复制证书

步骤三:CTFd下载和部署

CTFd是一款基于flask的CTF靶场框架,主要包含了用户界面部分和管理员界面部分。项目地址:https://github.com/CTFd/CTFd

1.下载CTFd

git clone https://github.com/CTFd/CTFd.git

2.下载完成后进入目录,使用docker-compose启动项目

cd CTFd
docker-compose up -d

3.等待他安装完依赖启动之后,访问http://127.0.0.1:8000 (ip改成自己的服务器地址)出现类似下面这个界面:
image.png

4.进入系统后需要注册一个账号,并完成一些基本的配置,方能进行后续操作。

步骤四:在CTFd上发布题目

github上有许多CTF题库的开源仓库,但有些整理的未必好,为了遵守容易部署的原则,我选择了CTFTraining:https://github.com/CTFTraining/CTFTraining 其题库较为详细,并且目录结构清晰,关键是都是通过docker编排,完全契合我的环境。

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:
      - "127.0.0.1:8302:80"

此处需要修改两个地方:一个是flag的值,写一个自己喜欢的字符串即可,另一个地方是下面的地址和端口号,地址改为0.0.0.0 端口号选一个未被占用的即可。

3.启动该题目

cd 0ctf_2016_unserialize
docker-compose up -d

4.访问和配置CTFd的Challenge
访问htto://127.0.0.1:8302 (此处改成自己的ip和端口号),成功能显示页面即可。
进入刚刚搭建好的CTFd中Admin->Challenges,添加一个新的挑战,类型选standard,
填写好题目名字、内容和分值等。
image.png

5.配置flag
进入到刚刚创建的挑战中,在左侧填上刚刚配置好的flags
image.png

步骤五:汉化CTFd

汉化包地址:https://github.com/Gu-f/CTFd_chinese_CN

1.下载汉化包

git clone https://github.com/Gu-f/CTFd_chinese_CN.git

2.替换或者增加theme
方法一:将core_chinese文件直接放入CTFd\CTFd\themes目录即可在更换主题处找到该中文主题

方法二:themes文件直接替换CTFd\CTFd目录下的themes即可完成汉化

3.最后的效果图如下:
image.png


标题:从零开始搭建CTF靶场
作者:Jeffrey