CTF下加载CTFtraining题库以管理员身份导入 [HCTF 2018]WarmUp,之后以参赛者身份完成解题全过程

-------------------搭建CTFd------------------------------

给大家介绍一个本地搭建比较好用的CTF比赛平台:CTFD。

CTFd是一个Capture The Flag框架,侧重于易用性和可定制性。它提供了运行CTF所需的一切,并且可以使用插件和主题轻松进行自定义。

官方网站:https://ctfd.io/

github地址:https://github.com/CTFd/CTFd

 以下是我在 Ubuntu22下安装CTFD的整个过程;

1、安装git

sudo apt install git

2、安装pip

sudo apt install python-pip

3、安装Flask

sudo pip install Flask

4、克隆CTFd

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

4、安装CTFd

 sudo cd /usr/local/CTFd/
sudo pip install -r requirements.txt

5、启动CTFd

sudo python3 serve.py

6、现在浏览器去打开“http://127.0.0.1:4000/”已经正常了,需要我们先注册一个账号。

7、去CTFd放题目

创建一个管理员账号后,然后点击右上角 Admin -> Challenge 一直添加即可,第一个是名字,这里是我其中一个题目的编辑状况,这个平台是可以用Markdown来编辑题目的。

去CTFd放题目

CTFD本身是没有任何CTF比赛题库的,我们需要先自己用docker搭建CTF赛题docker搭建CTF赛题,然后再加入到CTFD这个框架里面去。

-------------------导入CTFtraining题库------------------------------

CTFTraining:https://github.com/CTFTraining/CTFTraining

2.1准备工作:安装docker ,如果没安装curl使用apt install curl把curl安装一下

# 安装PIP
curl -s https://bootstrap.pypa.io/get-pip.py | python3

#安装最新版本的docker 
curl -s https://get.docker.com/ | sh

# 运行docker服务
service docker start

# 安装docker compose
pip install docker-compose

2.2CTF赛题环境

注意:CTFTraining的CTF名字规则是:比赛名称_年份_题目类型_题目名称_其他;

有不懂的请看某一个CTF赛题的 README.md 文件;

1)拉取CTFTraining项目

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

 如果拉取下来的文件夹为空,就一个一个的拉吧或者一个一个下载!有点麻烦,目前没找到好办法,有好办法的麻烦告诉一下我。

 

2)启动某一个CTF赛题环境

这里我以[HCTF 2018]WarmUp为例:

GitHub - CTFTraining/hctf_2018_warmup: hctf_2018_warmup为例子,

进入到hctf_2018_warmup文件夹执行docker-compose up -d

3、浏览器打开 http://127.0.0.1:8081/ 界面如下:

 

此处的 http://127.0.0.1:8081/  每条题目ip端口

不一样,需要在docker-compose.yaml文件中查看

--------------------------------做题------------------------------

查看页面源代码,发现一个注释

中有source.php文件

访问source.php,可以看到以下源代码,并进行分析:

包含hint.php时给出提示,flag在ffffllllaaaagggg文件中 

分析发现在第一个mb_substr进行校验时,就可以绕过获取flag了,我们只需要在source.php后面添加一个?,然后将截取的字符串赋值到$_page进行校验,然后利用…/退回上级目录包含flag。

在网址后输入source.php?file=source.php?/../../../../ffffllllaaaagggg

具体视频见:

CTF下加载CTFtraining题库以管理员身份导入 [HCTF 2018]WarmUp,之后以参赛者身份完成解题全过程_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/512904.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手写SpringBoot(二)之动态切换Servlet容器

系列文章目录 手写SpringBoot(一)之简易版SpringBoot 手写SpringBoot(二)之动态切换Servlet容器 手写SpringBoot(三)之自动配置 手写SpringBoot(四)之bean动态加载 手写SpringBoot&…

如何使用VNC+Cpolar实现Windows电脑公网远程控制Ubuntu系统桌面

文章目录 前言1. VisualSVN安装与配置2. VisualSVN Server管理界面配置3. 安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4. 固定公网地址访问 前言 SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统…

生存分析笔记

生存分析(英语:Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析,例如生物有机…

2023年第十四届蓝桥杯 - 省赛 - C/C++大学A组 - B.有奖问答

Idea 一共 30 道题,得分情况为 0 ~ 100 分。 创建一个 30 行 100 列的 dp 数组,dp[i][j] 表示做完第 i 题,得分为 j 的方案数。 Code Python dp [[0 for _ in range(100)] for _ in range(31)] # dp[i][j] 表示做完第 i 题得分为 j 的…

Scala第十八章节(Iterable集合、Seq集合、Set集合、Map集合以及统计字符个数案例)

Scala第十八章节 章节目标 掌握Iterable集合相关内容.掌握Seq集合相关内容.掌握Set集合相关内容.掌握Map集合相关内容.掌握统计字符个数案例. 1. Iterable 1.1 概述 Iterable代表一个可以迭代的集合, 它继承了Traversable特质, 同时也是其他集合的父特质. 最重要的是, 它定…

UE4_破碎插件的蓝图节点_Apply Radius Damage

一、知识点 Apply Radius Damage:破碎组件所带的蓝图节点。 二、使用方法: 1、设置——插件,搜索destruction,找到 Apex Destruction,勾选已启用。重启虚幻编辑器。 2、这样右键操作就有创建可破坏的网格体菜单,将do…

基于51单片机多路温度检测—8路、4路

基于51单片机多路温度检测 (仿真+程序+原理图) 功能介绍 具体功能: 1.通过对多路DS18B20温度传感器的数据采集; 2.温度采集并将数值显示在LCD显示屏上; 3.可通过按键设置温度报警值&#xff…

如果查看iPhone的GPU

摘要 了解你的显卡对于在电脑上玩现代图形要求高的游戏非常重要。本文介绍了如何轻松查看你的显卡型号以及为什么显卡在玩电脑游戏时如此关键。 引言 随着电脑游戏的发展,现代游戏对硬件性能的要求越来越高。十年前发布的显卡已经无法满足当前游戏的需求。因此&…

《书生·浦语大模型全链路开源开放体系》学习笔记

书生浦语大模型全链路开源开放体系-学习笔记 大模型成为发展通用人工智能的重要途径专用模型通用大模型 书生大模型开源历程InternLM2回归语言建模的本质主要亮点性能全方位提升强大的内生计算能力 从模型到应用典型流程全链条开源开放体系数据数据集获取预训练微调XTuner 评测…

函数参数缺省和内联函数【C++】

文章目录 函数参数缺省函数参数缺省的条件和要求 内联函数内联函数的工作原理内联函数的定义方法内联函数的要求解决方法:直接在.h中定义内联函数的函数体 内联函数再Debug模式下默认是不展开的 函数参数缺省 顾名思义:可以少传一个/多个参数给函数&…

基于springboot+vue+Mysql的企业客户信息反馈平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Runes 协议创始人 Casey 发布了 24 个创世符文的名称的 idea

作者:Runes 中文社区 X/推:RunesCC 来看看 ChatGPT 对这些名字的解释,可以看出 Casey 的创世符文所追求的,是对不同文化、社会现象、人类情感的探索和思考,让不同的群体都能在这些 meme 中找到共鸣。 TRIPPLE•NIPPLE…

MySQL数据库(数据库连接池)

文章目录 1.批处理应用1.基本介绍2.批处理演示1.创建测试表2.修改url3.编写java代码 3.批处理源码分析 2.数据库连接池1.传统连接弊端分析2.数据库连接池基本介绍1.概念介绍2.数据库连接池示意图3.数据库连接池种类 3.C3P0连接池1.环境配置1.导入jar包2.将整个lib添加到项目中3…

真·面试题总结——JVM虚拟机

JVM虚拟机 JVM虚拟机规范与实现 JVM虚拟机规范 JVM虚拟机实现 JVM的常见实现 JVM虚拟机物理架构 JVM虚拟机的运转流程 JVM类加载过程 JVM类加载器及类加载器类型 JVM类加载器双亲委派机制 JVM运行时数据区的内存模型 JVM运行时数据区的内存模型:程序计数器…

蓝桥杯 - 玩具蛇

解题思路&#xff1a; dfs public class Main {static final int N 4;static int[][] visited new int[N][N];static int count;public static void main(String[] args) {for (int i 0; i < N; i) { //16种位置开始的可能for (int j 0; j < N; j) {dfs(i, j, 1);}…

稀碎从零算法笔记Day37-LeetCode:所有可能的真二叉树

今天的每日一题&#xff0c;感觉理解的还不够深&#xff0c;有待加深理解 题型&#xff1a;树、分治、递归 链接&#xff1a;894. 所有可能的真二叉树 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个整数 n &#xff0c;请你找出所有…

深入理解MySQL:拼接字符串、查询、删除表和创建索引的关键命令

MySQL是一种功能强大的关系型数据库管理系统&#xff0c;广泛应用于各种类型的应用程序中。本文将介绍MySQL中一些常用的关键命令&#xff0c;包括拼接字符串、查询、删除表和创建索引&#xff0c;帮助读者更好地理解和利用MySQL数据库。 mysql拼接字符串 在MySQL中&#xf…

C++ AVL树(旋转)

我们之前学习了搜索二叉树&#xff0c;我们知道普通的搜索二叉树会有特殊情况出现使得二叉树的两枝极其不平衡形成我们通俗说的歪脖子树&#xff1a; 这样的树一定会使得我们的增删查的效率变低&#xff1b;为了避免这种极端的情况出现&#xff0c;在1962年有两位伟大的俄罗斯数…

kubadm部署 kubernetes-1.29版本

一、集群节点准备 ip主机名称操作系统192.168.1.160master-1Centos-7.9192.168.1.161node-1Centos-7.9 二、安装前主机环境准备 &#xff08;所有主机都需要进行&#xff09; 1、配置主机名解析 echo "192.168.1.160 master-1" >> /etc/hosts echo "1…

C++符号清洗、Swift符号清洗, 编译还原

C 符号清洗&#xff08;编译还原&#xff09; C 由于函数重载的原因&#xff0c;针对每个函数符号&#xff0c;假如了name mangling的机制。导致堆栈适合机制阅读&#xff0c;因为每个函数符号都是独一无二的&#xff0c;但是这并非程序员易读的文字。 比如我们有这个符号cra…