手把手搭一个靶场并出题

心血来潮搭建了一个靶场并出了人生中第一道CTF题,感觉挺有成就感,就写下这篇文章记录一下。

Step1 初始化docker环境

去购买一个云服务器(阿里云、腾讯云、华为云都可),设置系统为Ubuntu20.04(我自己是这种版本,其他版本用我这种方法可能会报错)

1
2
3
cd /root

vi init.sh

然后在init里面写入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
#更新系统
sudo apt-get update
sudo apt-get upgrade

#安装 docker和docker-compose
sudo apt install docker docker-compose zip

#设置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://faalpdo3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

然后

1
2
3
4
chmod +x init.sh

./init.sh

遇到问句就 y

step2 搭建CTFd

1.拉取CTFd

在服务器面板里开放端口(我这里以8000为例)

image-20211031203539148

直接利用docker拉取镜像

1
docker run -p 8000:8000 -d ctfd/ctfd

然后去访问url+端口号

会有初始化的界面,去设置一下管理员员账号密码等一些配置信息即可

2.汉化ctfd

image-20211031203901602

首先利用docker ps去查看id,然后利用id进入docker容器里面

1
docker exec -it de6fe1167985 /bin/bash

先去下载汉化包,直接用git命令去拉取

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

1
2
3
4
5
切换到CTFd目录 删除主题
rm -rf themes

然后把下载好的主题以及对应的版本cp过来
cp /opt/CTFd/CTFd_chinese_CN/V3.1.1/CTFd-3.1.1/CTFd/themes .

image-20211031204430496

刷新下界面,就发现变成了中文,至此ctfd搭建完成

step3 出题

之前去测试环境,都是直接用宝塔去搭建的本地服务,这种方法有时候会出现很大的问题,例如搭建的环境存在写shell的地方,你的服务器很容易就被别人当做肉鸡来抓,有很多这种情况,去fofa上一搜,就能抓到很多肉鸡

既然是出题,那就高端一点,利用dokcer去搭建环境,本次出题借鉴了一些别的比赛的源码,此题为天翼杯魔改的,

1.编写Dockerfile

利用的是Dockerfile生成的images 然后run

1
2
3
4
5
6
7
8
9
10
11
12
13
FROM sakadonohito/php5.6.23-apache

LABEL Author="Air"

COPY ./src/ /var/www/html/

RUN chmod -R 755 /var/www/html/ && \
chown -R root:root /var/www/html

EXPOSE 80

CMD sh -c "apache2-foreground"

2.在src目录下准备好源码

Step 4 运行docker

1
docker build -t trick:v3 .   // .的意思是把当前目录下的文件都给打包
1
docker run -p 7000:80 -d trick:v3

然后把东西题目信息通过ctfd平台的后台管理界面传上去即可


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!