news 2026/2/22 6:15:41

从0搭建一个本地CTF靶场

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从0搭建一个本地CTF靶场
从0搭建一个本地CTF靶场

我们平时大部分练习的CTF靶场都是别人的平台的,所以想着自己搭一个来玩玩,用的是CTFd框架,因为网上的教程也比较多,这次搭建也是比较顺利的,记录一下。

前期准备:

一、创建虚拟机:

选择镜像(需提前下载)

。。。。。。。。。。。。。

我装的是带桌面的界面 友好点 (菜)

二、docker安装

下载之前更新一下python版本:

<------更新python版本------>wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz #下载最新版,自行查看tar -xzvf Python-3.9.7.tgz #解压cd Python-3.9.7 #进入解压后的目录mkdir /usr/bin/python3 #创建一个python3目录./configure --prefix=/usr/bin/python3 #指定路径make #编译make install #安装mv /usr/bin/python /usr/bin/python_old2 #重命名旧版本python以免覆盖ln -s /usr/bin/python3/bin/python3 /usr/bin/python #建立新版本软连接python -V #成功修改默认python为Python-3.9.7 <------修改pip3------>vim ~/.bash_profile #修改pip3指定路径里面有一行修改为:PATH=$PATH:$HOME/bin:/usr/bin/python3/binsource ~/.bash_profile #刷新配置即可 <------修改yum------>

1.更新yum包

yum update #更新前检查网络是否正常连接

2.安装必要的系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

3.设置yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.查看并选择合适的docker版本

yum list docker-ce --showduplicates | sort -r

5.下载docker

yum install docker-ce-17.12.1.ce

6.Docker镜像源加速

cd /etcmkir docker #创建docker目录,因为我这里etc目录下没有所以要手动创建vim docker/daemon.json #创建并编辑docker目录下的daemon.json文件#编辑内容为:{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}systemctl restart docker.service #重启docker生效

三、docker-compose安装

1.选择安装最新的docker-compose版本

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.设置docker-compose执行权限

chmod +x /usr/local/bin/docker-compose

四、git配置和安装

1.查看git版本

git --version #查看当前版本,通常默认是1.8.3,但是太老了

2.卸载旧版本git

yum remove git

3.安装最新版git

wget https://github.com/git/git/archive/v2.33.0.tar.gz #可以先自行去看看最新版本是多少

4.进入解压后的git安装目录

cd git-2.33.0

5.编译

make prefix=/usr/bin/git all #编译正常可以跳过下面报错处理
PS:在使用命令 make 重新编译 Git 的某些源文件时,你可能会遇到以下这些错误:
错误 1 - FATAL ERROR: OPENSSL/SSL.H: NO SUCH FILE OR DIRECTORY

这是缺少openssl-devel导致的,执行命令yum install --assumeyes openssl-devel安装即可。

错误 2 - FATAL ERROR: CURL/CURL.H: NO SUCH FILE OR DIRECTORY

这是缺少curl-devel导致的,执行命令yum install --assumeyes curl-devel安装即可。

错误 3 - FATAL ERROR: EXPAT.H: NO SUCH FILE OR DIRECTORY

这是缺少expat-devel导致的,执行命令yum install --assumeyes expat-devel安装即可。

6.编译成功,安装Git至/usr/bin/git路径

make prefix=/usr/bin/git install

7.编辑环境变量配置

vim /etc/profile

8.profile文件末尾追加

export PATH=$PATH:/usr/bin/git/bin

9.刷新配置

source /etc/profile

10.查看git版本

git --version #修改成功

五、CTFd下载和部署

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

1.下载CTFd

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

2.进入目录使用docker-compose 启动项目

cd CTFddocker-compose up -d

3.等待他安装完(可能时间有点久耐心等待一下)依赖启动之后,访问 http://127.0.0.1 (ip 改成自己的服务器地址)出现类似下面这个界面,然后填写一些基本信息,一直Next…

六、下载部署CTFd题目

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

1.下载 CTFTraining 中的题库,这里要注意 CTFTraining 整个项目较大,题目建议一个个下,有选择性的拉取,下面以拉取第一个题目为例

mkdir CTFTrainingcd CTFTraininggit clone https://github.com/CTFTraining/0ctf_2016_unserialize.git

2.修改 docker-compose.yml 文件

cd 0ctf_2016_unserializevim docker-compose.yml# 0ctf_2016_unserializeversion: "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 端口号选一个未被占用的即可。因为0.0.0.0可以给本地局域网机器访问。

3.启动该题目

docker-compose up -d

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

七、汉化CTFd

1.下载汉化包

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

2.替换themes

将CTFd/CTFd/themes的themes文件删除,再移动汉化版本thems到CTFd/CTFd/目录下即可。

3.替换好的效果如下:

网络安全学习资源

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/19 15:17:43

0x3f 第46天 复习 9:58-10:55

岛屿数量思考组合总和思考组合总和Ⅲ思考N皇后思考单词搜索ac思考搜索旋转楼梯ac思考有效的括号xac搜索二维矩阵ac思考LRU缓存的一半xxacO(1)取最小元素的栈acacac字符串解码acacac每日温度acac柱状图最大矩形面积acac

作者头像 李华
网站建设 2026/2/19 15:27:56

深入揭秘 Linux 虚拟文件系统 VFS(上)

1. 前言 在学习**虚拟文件系统&#xff08;VFS&#xff09;**之前&#xff0c;我们应该先了解一下它的出现是为了解决什么问题。 不论是在以前还是现在&#xff0c;Linux 都支持着好几十种文件系统类型&#xff0c;我们在 Shell 里输入 ls -l 看到的都是一行描述文件信息的字…

作者头像 李华
网站建设 2026/2/15 14:22:02

软件测试中的白盒测试,这些技巧你知道吗?

对于很多刚开始学习软件测试的小伙伴来说&#xff0c;如果能尽早将黑盒、白盒测试弄明白&#xff0c;掌握两种测试的结论和基本原理&#xff0c;将对自己后期的学习有较好的帮助。今天&#xff0c;我们就来聊聊黑盒、白盒测试的相关话题。 1、黑盒测试的方法和小结 最常见黑盒…

作者头像 李华
网站建设 2026/2/18 6:07:03

中专学历转行本地电商数据分析的可行性分析

行业背景与需求 本地电商行业近年来快速发展&#xff0c;数据驱动决策成为核心竞争力。企业对数据分析人才的需求持续增长&#xff0c;尤其是能够结合本地市场特点进行精准分析的专业人员。 本地电商数据分析岗位需求技能要求薪资范围&#xff08;初级&#xff09;销售数据分…

作者头像 李华
网站建设 2026/2/21 1:07:44

大专学历出纳转型财务BP的路径规划

财务BP&#xff08;Business Partner&#xff09;是企业财务与业务深度融合的岗位&#xff0c;需具备数据分析、业务洞察和战略支持能力。以下从技能提升、证书考取、实战经验等维度&#xff0c;为出纳转型财务BP提供具体方案。 核心能力对比分析 出纳岗位能力财务BP岗位能力提…

作者头像 李华