CTFd靶场搭建

baozongwi Lv5

0x01 说在前面

校队23级的能干活的只有我了,web手搭个台子我觉得也是轻轻松松吧?(搭前宣言)

0x02 action

初始docker

1
2
3
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

pip install --upgrade docker-compose-cli
1
2
3
4
5
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
docker --version
docker compose version

首先我们检查docker能不能用

1
2
3
4
5
6
7
cat /etc/docker/daemon.json

docker run hello-world

docker run -d -p 3000:80 nginx

docker stop 6e9ca9d82c9d && docker rm 6e9ca9d82c9d

run会先pull所以就不用pull,这里的端口于是时间不够了,我也没有备案所以只能这么弄了,等会搭建CTFd也只能这么搞了

CTFd

1
2
3
docker swarm init		# 初始化
docker node ls # 查看节点ID
docker node update --label-add name=linux-1 0ln3s4mlvn6mpkxx6c2e3e8ym # 添加别名

然后直接使用别人的包

1
2
3
4
5
6
7
git clone https://github.com/vicosna/CTFd.git

cd CTFd # 进入CTFd目录
git submodule update --init

docker compose build
docker compose up -d

如果报错了

1
2
3
4
5
docker swarm init

docker node update --label-add='name=ctfd_frp_containers' $(docker node ls -q)

docker node update --label-add='name=linux-1' $(docker node ls -q)

我是没有报错的,但是也没有成功,很难受换个nginx端口吧

1
2
3
4
5
6
sudo vim /etc/nginx/sites-available/default
sudo vim /etc/nginx/sites-available/default
# 自己换就好了
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl status nginx

1

一键删除镜像和容器命令

1
2
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
docker rmi $(docker images -q)

题目

这里随便搞个题目试试水

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo mkdir -p /opt/WICTF 
sudo cd /opt/WICTF
sudo git clone https://github.com/CTFTraining/CTFTraining.git
#安装CTFTraining,注意这里只能git下来目录,目录中是空的,需要一个一个CTF题目去git
cd CTFTraining
ls

sudo git clone https://github.com/CTFTraining/0ctf_2016_unserialize.git
#下载CTF题目,只要替换0ctf_2016_unserialize为其他目录名称即可下载所有题目
cd 0ctf_2016_unserialize/ #进入题目目录中
ls

sudo docker compose up -d
  • Title: CTFd靶场搭建
  • Author: baozongwi
  • Created at : 2024-11-01 14:53:22
  • Updated at : 2024-11-15 08:52:38
  • Link: https://baozongwi.xyz/2024/11/01/CTFd靶场搭建/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments