心血来潮搭建了一个靶场并出了人生中第一道CTF题,感觉挺有成就感,就写下这篇文章记录一下。
Step1 初始化docker环境
去购买一个云服务器(阿里云、腾讯云、华为云都可),设置系统为Ubuntu20.04(我自己是这种版本,其他版本用我这种方法可能会报错)
然后在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](/2021/10/31/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%90%AD%E4%B8%80%E4%B8%AA%E9%9D%B6%E5%9C%BA%E5%B9%B6%E5%87%BA%E9%A2%98/image-20211031203539148.png)
直接利用docker拉取镜像
1
| docker run -p 8000:8000 -d ctfd/ctfd
|
然后去访问url+端口号
会有初始化的界面,去设置一下管理员员账号密码等一些配置信息即可
2.汉化ctfd
![image-20211031203901602](/2021/10/31/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%90%AD%E4%B8%80%E4%B8%AA%E9%9D%B6%E5%9C%BA%E5%B9%B6%E5%87%BA%E9%A2%98/image-20211031203901602.png)
首先利用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](/2021/10/31/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%90%AD%E4%B8%80%E4%B8%AA%E9%9D%B6%E5%9C%BA%E5%B9%B6%E5%87%BA%E9%A2%98/image-20211031204430496.png)
刷新下界面,就发现变成了中文,至此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目录下准备好源码
![](/2021/10/31/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%90%AD%E4%B8%80%E4%B8%AA%E9%9D%B6%E5%9C%BA%E5%B9%B6%E5%87%BA%E9%A2%98/image-20211101113904514.png)
Step 4 运行docker
1
| docker build -t trick:v3 . // .的意思是把当前目录下的文件都给打包
|
1
| docker run -p 7000:80 -d trick:v3
|
然后把东西题目信息通过ctfd平台的后台管理界面传上去即可