CTFD平台部署自制题目指北(灌题)
给实验室同学搭建的CTFD平台用于内部训练和CTF的校赛,为了循序渐进当然是先内部出一些简单入门的题目,但是网上大部分关于CTFD平台的都只是部署,而关于题目放置的内容却很少,虽然这个过程比较简单,但还是记录一下
部署自制题目一共分为以下几步(以WEB题目为例,实际上如果是逆向,杂项,密码学这些不需要占用服务器资源类型的题目,部署起来会更简单,比如在题目的链接里面直接放一个百度网盘的下载链接):
出一道WEB题目
将其使用Docker打包,编写Dockerfile和docker-compose.yml文件
在服务器上运行该Docker
CTFD管理员登录,设置该题目
第一步,出一道WEB题目,关于此,师傅们可以有各种各样的思路,这里为了方便示范,举例为 目录爆破寻找 .flag.swp 交换文件,使用 VIM 恢复获取flag的题目
想好思路之后,编写代码并在本地的phpstudy环境上运行成功,目录为:01_Find_Fl4g_File,结构为:


index.php的内容为:
Find the flag file edited by VIM
第二步,将其使用Docker打包,编写Dockerfile和docker-compose.yml文件
我们使用基础镜像为:php:5.6-fpm-alpine
其Dockerfile为:
FROM php:5.6-fpm-alpine
RUN rm -rf /var/www/html/*
COPY ./files /var/www/html
EXPOSE 80
WORKDIR /var/www/html
CMD ["php", "-S", "0.0.0.0:80"]
假定读者有一定Docker基础,简单介绍一下内容
FROM 是基于某个基础镜像
RUN 运行后面的命令,即将基础镜像生成后html文件夹下的内容都删除掉,避免对题目造成影响,或者误导做题选手
COPY复制本机文件夹下的内容到容器的文件夹下
EXPOSE 选择暴露的端口,这个当然是选择80端口,WEB默认端口,在docker-compose.yml文件中我们再修改端口映射
WORKDIR 设置工作目录,这个设不设置都关系不大
CMD 每个Dockerfile中只能有一条CMD命令,一般用来启动服务,这里我们用来启动php
编写好Dockerfile后,我们编写docker-compose.yml文件,docker-compose.yml在存在多个容器的时候进行调度很方便,这里的docker-compose.yml文件比较简单;
version: "2"
services:
web:
build: .
restart: always
ports:
- "0.0.0.0:13000:80"
environment:
- FLAG=flag{Vim_1s_VeRy_g00d}
接着进行第三步:在服务器上运行该Docker
此处其实没啥注意的,将你本地测试好的题目保存到CTFD所在的服务器上,找个文件夹放置各个题目
如图:

目录为:
/home/ubuntu/CTFChallenge/web/01_Find_Fl4g_File
运行该docker
docker-compose up -d
加了 -d 参数之后服务在后台运行

进行第四步:CTFD管理员登录,设置该题目
管理员登录后,CTFd中Admin->Challenges

然后填写相关的内容:

虽然没有汉化,但是英文还是比较简单,正常使用没有问题,(不认识的多谷歌啦,其实就这几个功能
确定后到用户界面查看


点击链接后正常跳转:

来到题目界面,成功部署!
放上校内CTF训练平台,欢迎各位师傅来玩哇,后期会放很多基础,入门以及有意思的原创题目上去。
快快成长
参考链接:
CTFD平台部署自制题目指北(灌题)的更多相关文章
- CTFd平台部署
学校要办ctf了,自己一个人给学校搭建踩了好多坑啊..这里记录一下吧 心累心累 这里只记录尝试成功的过程 有些尝试失败的就没贴上来 为各位搭建的时候节省一部分时间吧. ubuntu18搭建 0x01 ...
- Android平台MediaCodec避坑指北
https://www.jianshu.com/p/5d62a3cf0741 最近使用MediaCodec做编解码H264,写一点东西以免自己再次掉坑. 先说一下具体环境,使用的是,Windows10 ...
- [转] iOS开发者的Weex伪最佳实践指北
[From] http://www.cocoachina.com/ios/20170601/19404.html 引子 这篇文章是笔者近期关于Weex在iOS端的一些研究和实践心得,和大家一起分享分享 ...
- CTFd平台搭建以及一些相关问题解决
CTFd平台搭建以及一些相关问题解决 一.序言 因为想给学校工作室提高一下学习氛围,随便带学弟学妹入门,所以做了一个ctf平台,开源的平台有CTFd和FBCTF,因为学生租不起高端云主机所以只能选择占 ...
- WEB安全漏洞挖掘向入坑指北
这个指北不会给出太多的网站和方向建议,因为博主相信读者能够从一个点从而了解全局,初期的时候就丢一大堆安全网址导航只会浇灭人的热情,而且我也不适合传道授业解惑hhh 安全论坛: 先知社区 freebuf ...
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)- 负载均衡marathon-lb
之前介绍了Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)的操作,多余的废话不说了,下面接着说下在该集群环境下的负载均衡marathon-lb的部署过程: 默认情况 ...
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)
随着"互联网+"时代的业务增长.变化速度及大规模计算的需求,廉价的.高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式系统.Docker及 ...
- 后端API入门到放弃指北
后端API入门学习指北 了解一下一下概念. RESTful API标准] 所有的API都遵循[RESTful API标准]. 建议大家都简单了解一下HTTP协议和RESTful API相关资料. 阮一 ...
- VMware Workstation 安装以及Linux虚拟机安装 指北
最近有挺多小伙伴跟我说起虚拟机这个东西,所以,今天就给大家写一篇虚拟机安装使用指北吧. 虚拟机(英语:virtual machine),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台 ...
随机推荐
- .Net 5 正式版RTM 发布
下载连接 https://dotnetcli.azureedge.net/dotnet/Sdk/5.0.100-rtm.20515.8/dotnet-sdk-5.0.100-rtm.20515.8-w ...
- Javascript基础知识面试题
[]==![] 解题思路: step1, []==!Boolean([]);step2, []==!true;step3, []==false;step4, [].valueOf()= ...
- 2. RDD(弹性分布式数据集Resilient Distributed dataset)
*以下内容由<Spark快速大数据分析>整理所得. 读书笔记的第二部分是讲RDD.RDD 其实就是分布式的元素集合.在 Spark 中,对数据的所有操作不外乎创建RDD.转化已有RDD以及 ...
- nginx&http 第二章 ngx 事件event初始化 ngx_event_process_init
|----------(ngx_worker_process_cycle->ngx_worker_process_init) |--------->for(;;) {ngx_process ...
- 极客mysql08
1.innodb支持RC和RR隔离级别实现是用的一致性视图(consistent read view) 2.事务在启动时会拍一个快照,这个快照是基于整个库的. 基于整个库的意思就是说一个事务内,整个库 ...
- solr 笔记
1.sorl其实是对存储的内容,根据相应的域和域的类型先分词,停顿,过滤(大小写转换)等等;然后建立多级索引.对搜索条件也是根据相应的域和域的类型进行分词,停顿,同义词,过滤(大小写转换)等等;然后建 ...
- [head first 设计模式] 第一章 策略模式
[head first 设计模式] 第一章 策略模式 让我们先从一个简单的鸭子模拟器开始讲起. 假设有个简单的鸭子模拟器,游戏中会出现各种鸭子,此系统的原始设计如下,设计了一个鸭子超类,并让各种鸭子继 ...
- php7的Opcache getshell
OPcache基础 OPcache是一种通过解析的PHP脚本预编译的字节码存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共享内存读取已经缓存的字节码,从而大大提高了PHP的执行 ...
- DocView 现在支持自定义 Markdown 模版了!
前言 有小伙伴反馈说希望可以自定义 Markdown 模版,这样就可以导出自己想要的样式了!这个功能可以有,毕竟大家不可能都生成一模一样的文档.现在来一起看看如何实现自定义模版吧! 设置模版 Sett ...
- PDF文档工具:pdfFactory快照功能详解
pdfFactory的快照功能,是通过一种类似截图的方式,将文档中的内容,如标题.图片.段落.文字等进行剪切的功能.剪切后的内容会转化为文本框的形式,我们可以对其进行加边框.旋转等编辑处理,但不能对其 ...