CTFd平台搭建汉化及CTF题库部署

一、虚拟机环境搭建

1、安装docker、git、docker-compose

ubuntu

sudo apt-get update #更新系统
sudo apt-get -y install docker.io #安装docker
sudo apt-get -y install git #安装git
sudo apt-get -y install python-pip #安装pip
sudo apt-get -y install python3-pip #安装pip3
sudo pip install docker-compose #pip安装docker-compose,如安装失败sudo pip install --upgrade pip更新pip版本后再安装

centos or redhat

sudo yum -y update #更新系统及内核
sudo yum install -y docker-ce #安装docker
sudo yum install -y git #安装git
sudo yum install -y epel-release #安装EPEL源
sudo yum install -y python-pip #安装pip
sudo yum install -y python3-pip #安装pip3
sudo pip install docker-compose #pip安装docker-compose,如安装失败sudo pip install --upgrade pip更新pip版本后再安装

2、docker配置&python配置

docker配置:

#如果想自定义docker镜像下载目录进行执行如下命令
sudo rm -rf /var/lib/docker
sudo mkdir -p /appdata/docker #/appdata/docker为你自定义的目录
sudo ln -s /appdata/docker /var/lib/docker #创建软链接使/var/lib/docker指向/appdata/docker
#设置国内docker镜像源
sudo mkdir -p /etc/docker #创建目录
sudo vim /etc/docker/daemon.json #编辑配置文件
#将如下内容写入:
{
"registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
#******为你注册阿里docker镜像仓库的代码,获取方式见如下文章:
#https://blog.csdn.net/wohaqiyi/article/details/89335932
sudo service docker restart #重启docker

python配置:

#如python2和python3同时存在,请按如下方法配置默认python
sudo mv /usr/bin/python /usr/bin/python-bak #备份python2二进制链接
sudo mv /usr/bin/pip /usr/bin/pip-bak #备份pip2二进制链接
sudo ln -s /usr/bin/pip3 /usr/bin/pip #创建python3软链接
sudo ln -s /usr/bin/python3 /usr/bin/python #创建python3软链接

#配置结束后因yum默认使用python2会导致yum不可用需进行如下配置
[root@localhost ~]# yum install 
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax
#需进行如下配置
sudo vim /usr/bin/yum
将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.7"即可
#yum安装报错时,将所有提示报错的文件中"#!/usr/bin/python" 改为 "#!/usr/bin/python2.7"即可

3、部署CTFd平台

cd /opt
sudo git clone https://github.com/CTFd/CTFd.git #下载CTFd
cd CTFd
sudo docker-compose up -d #docker方式后台下载镜像源并启动

[root@localhost CTFd]# docker-compose up -d
WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

Creating ctfd_db_1    ... done

Creating ctfd_ctfd_1  ... done
Creating ctfd_cache_1 ... done
Creating ctfd_ctfd_1  ... 
Recreating ctfd_nginx_1 ... done

安装完成,在docker中查看状态:

sudo docker ps -a #查看所有容器
[root@localhost CTFd]# sudo docker ps -a
CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                                       NAMES
cead07018859   nginx:1.17          "nginx -g 'daemon of…"   3 minutes ago   Up 3 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp           ctfd_nginx_1
87525f6070d4   ctfd_ctfd           "/opt/CTFd/docker-en…"   3 minutes ago   Up 3 minutes   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   ctfd_ctfd_1
e9e9be589c9f   mariadb:10.4.12     "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes                                               ctfd_db_1
e7b05692ad40   redis:4             "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes                                               ctfd_cache_1

此时,CTFd平台已经部署完成,下面访问一下80、8000端口均可访问CTFd平台,如果只想通过8000端口访问,停止nginx容器即可

sudo docker stop cead07018859 #cead07018859为nginx容器CONTAINER ID

此时访问80端口发现已不能访问

也可使用脚本方式部署CTFd,命令如下:

sudo sh prepare.sh #pip安装所需python库
sudo python serve.py #使用Flask框架启动CTFd平台

安装完成,访问IP:8000,进入CTFd初始化界面,按需注册账号密码后,点finish可进入CTFd平台

4、部署一个CTF题目

这里用CTFTraining题库进行演示,文章末会贴上CTF题库大全

sudo mkdir -p /opt/CTF #创建CTF目录
sudo cd /opt/CTF
sudo git clone htt/opt/CTFps://github.com/CTFTraining/CTFTraining.git #安装CTFTraining,注意这里只能git下来目录,目录中是空的,需要一个一个CTF题目去git
cd CTFTraining
ls

只有目录,里面并无内容

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

发现目录中已经有内容了

修改docker-compose.yml文件,设置端口及flag

sudo vim docker-compose.yml
[root@localhost 0ctf_2016_unserialize]# vi docker-compose.yml 
# 0ctf 2016 piapiapia
version: "2"

services:

  web:
    build: .
    image: ctftraining/0ctf_2016_unserialize
    environment:
      - FLAG=flag{输入你想设置的flag}
    restart: always
    ports:
      - "127.0.0.1:8302:80"

使用docker-compose启动:

sudo docker-compose up -d #使用docker-compose下载镜像生成容器并启动容器

容器启动完成

docker ps -a #查看容器状态

已经启动,在本地访问IP:8302发现可以访问,但在其他电脑无法访问

停止并删除容器,并修改配置文件docker-compose.yml

sudo docker stop 2c6df451d955 #停止容器,2c6df451d955为CTF题目CONTAINER ID
sudo docker rm 2c6df451d955 #删除容器,2c6df451d955为CTF题目CONTAINER ID
sudo vim docker-compose.yml #vim将127.0.0.1修改为0.0.0.0

# 0ctf 2016 piapiapia
version: "2"

services:

  web:
    build: .
    image: ctftraining/0ctf_2016_unserialize
    environment:
      - FLAG=flag{nizhenshigedacongming}
    restart: always
    ports:
      - "0.0.0.0:8302:80"

 使用docker-compose启动:

sudo docker-compose up -d #使用docker-compose下载镜像生成容器并启动容器

此时,CTF题目链接可以在其他电脑访问

5、CTFd平台创建题目

进入CTFd界面,点击Admin Panel进入管理配置界面

点击challenges添加一个挑战

选择standard,填写完成后点击Create按钮创建

配置flag,挑战可见性,点击Finish创建挑战,如有改动编辑后点击update即可

点击首页,退出管理配置界面,点击challenges看见刚才创建的题目,其他小伙伴登录就可以直接做题了

6、汉化&&CTF题库

汉化:

git clone https://github.com/Gu-f/CTFd_chinese_CN.git #下载汉化包
  1. 了解自己当前使用的CTFd版本
  2. 将符合本版本的themes目录直接替换掉CTFd/CTFd目录下的themes目录即可
  3. 记得备份原来的themes目录。

CTF题库:

近年ctf writeup大全

https://github.com/ctfs/write-ups-2016

https://github.com/ctfs/write-ups-2015

https://github.com/ctfs/write-ups-2014

fbctf竞赛平台Demo

https://github.com/facebook/fbctf

ctf Resources

https://github.com/ctfs/resources

CTF(Capture The Flag)是一种网络安全竞赛形式,参赛者需要在规定时间内解决一系列与网络安全相关的题目,其中包括理论题。CTF理论题库及答案是指整理和收集的一套关于CTF理论知识的题目和对应的答案。这些理论题目涵盖了网络安全的各个方面,包括密码学、漏洞利用、逆向工程等。 CTF理论题库及答案的作用主要有以下几个方面: 1. 学习和巩固知识:通过解答理论题,参赛者可以加深对网络安全相关知识的理解和掌握,提高自己的技能水平。 2. 检验和评估能力:理论题目考察参赛者对网络安全概念、原理和技术的了解程度,可以帮助自我评估并发现自己的知识盲点。 3. 提供技术参考:对于初学者来说,理论题目及其答案可以作为技术学习的参考资料,帮助他们快速入门和了解网络安全领域的基础知识。 CTF理论题库及答案的来源多样,可以包括CTF比赛中的实际考题、网络安全相关书籍和教育机构的课程内容。参赛者可以通过搜索CTF相关的论坛、网站和资源库,获取题目和答案。同时,他们也可以自己整理和归纳相关的理论知识,逐步构建自己的题库。 在使用CTF理论题库及答案时,参赛者需要注意以下几点: 1. 真实性和准确性:确保所使用的题目和答案来源可靠,避免因错误或过时的信息导致学习误导。 2. 独立思考:理论题目的目的是帮助参赛者理解并掌握知识,而不仅仅是记住答案。参赛者应该在解答前先尝试独立思考,并在需要时查阅答案。 3. 分享和交流:CTF理论题库及答案是开放共享的资源,参赛者可以将自己整理的题目和答案分享给其他人,促进互联网安全知识的传播和交流。 总之,CTF理论题库及答案是一项重要的网络安全学习和竞赛资源,可以帮助参赛者学习和巩固知识,检验和评估自己的能力,并为初学者提供技术参考。只要正确使用并结合实际情况,它将对网络安全人才的培养和发展起到积极的促进作用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值