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),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台 ...
随机推荐
- 070_GUI编程
目录 简介 图形用户界面 Graphical User Interface,简称 GUI,又称图形用户接口 GUI核心技术:Swing AWT 不再流行的原因 为什么学习 AWT AWT(Abstra ...
- 内网渗透 day1-基础
粘滞键和放大镜 1. 到/windows/system32下用takeown改变该文件夹下的文件拥有权(因为粘滞键和放大镜都在system32文件夹下) cd /Windows/system32 ...
- nice-ni 耗光cpu
可以看到 低优先级的进程 暂用了比较高的CPU时间. top 命令中可以看到 NI 为19, 其优先级最低 但是使用cpu 最高. 说明这个进程需要经行优化了, 通过gdb 发现此进程一直都在处理报文 ...
- 1. 线性DP 300. 最长上升子序列 (LIS)
最经典单串: 300. 最长上升子序列 (LIS) https://leetcode-cn.com/problems/longest-increasing-subsequence/submission ...
- linux文件的3个时间和7种文件类型
linux文件的三个时间: atime: access time --最近访问时间. ctime: change time --最近改变时间. mtime:modify time --最近修改时间. ...
- 在线调整ceph的参数
能够动态的进行系统参数的调整是一个很重要并且有用的属性 ceph的集群提供两种方式的调整,使用tell的方式和daemon设置的方式 一.tell方式设置 调整配置使用命令: 调整mon的参数 #ce ...
- python菜鸟教程学习4:基本数据类型
变量:python中的变量不需要声明,但在使用前都必须要赋值,变量赋值之后才会被创建 在python中变量是没有类型的,所有的数据类型是对内存中对象的类型. 赋值:使用等号=来给变量赋值 python ...
- 进程池与回调函数与正则表达式和re爬虫例子
# 使用进程池的进程爬取网页内容,使用回调函数处理数据,用到了正则表达式和re模块 import re from urllib.request import urlopen from multipro ...
- 02、MyBatis XML 全局配置文件
MyBatis-全局配置文件 在MyBatis中全局配置文件有着重要的地位,里面有9类行为信息;如果我们要想将MyBatis运用的熟练,配置全局配置文件是必不可少的步骤,所以我们一定要啃下这一块硬骨头 ...
- SQL语句的学习
SQL语句的学习 要交作业了,刚好把SQL查询语句的内容写成笔记,以后好查看.水一下 单表查询 DISTINCT:去掉结果中的重复行作用,将DISTINCT关键字放在select的后面.目标列名的前面 ...