CTFHub-HTTP协议五关刷题解答
CTFHub
开箱即用的CTF学习解决方案
地址:https://www.ctfhub.com/#/skilltree
本次解答一共包括五关,没有先后顺序。

1.技能树一:请求方式
题目描述

打开后得到如下的页面

HTTP方法是GET
使用CTF**B方法,我会给你flag。
提示:如果你得到“HTTP方法不允许” 错误,你应该请求索引index.php。
题目考点
HTTP Method (http请求方法)
解题思路
由题意得知
本题所涉及的知识为HTTP的八种请求方式
起初按网页的文字
尝试用 GET 方式进行解题
但是无解
在查询了有关于HTTP请求方式的相关信息后发现
HTTP支持自定义请求方式
结合“CTF**B”不难联想到
我们应该自定义一个名为“CTFHUB”的HTTP请求方式
故我们用Burp suite进行抓包及改包

改包:更改请求方式GET为CTFHUB

得到的结果如下图所示:

有关知识
|
序号 |
方法 |
描述 |
|
1 |
GET |
请求指定的页面信息,并返回实体主体。 |
|
2 |
HEAD |
类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
|
3 |
POST |
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
|
4 |
PUT |
从客户端向服务器传送的数据取代指定的文档的内容。 |
|
5 |
DELETE |
请求服务器删除指定的页面。 |
|
6 |
CONNECT |
HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
|
7 |
OPTIONS |
允许客户端查看服务器的性能。 |
|
8 |
TRACE |
回显服务器收到的请求,主要用于测试或诊断。 |
|
9 |
PATCH |
是对 PUT 方法的补充,用来对已知资源进行局部更新 |
要注意的是:
方法名称是区分大小写的
当某个请求所针对的资源不支持对应的请求方法的时候
服务器应当返回状态码405(Mothod Not Allowed)
当服务器不认识或者不支持对应的请求方法时
应返回状态码501(Not Implemented)
HTTP服务器至少应该实现GET和HEAD/POST方法
其他方法都是可选的
此外除上述方法
特定的HTTP服务器支持扩展自定义的方法
另解
第二解法,利用 curl 命令对本题求解
在命令行中输入:
curl -v -X CTFHUB http://challenge-aeda8a453e8c041f.sandbox.ctfhub.com:10080/index.php
得到如下的结果:

curl 的相关用法:
http://www.ruanyifeng.com/blog/2019/09/curl-reference.html
本题结束
2.技能树二:302跳转
题目描述

打开后得到

题目考点
HTTP状态码
解题思路
由题意得知
本题涉及的知识点为网页的302跳转
当我们想前往 index.php 的时候
网站自动跳转到index.html
故我们用Burp suite进行抓包
发送到intruder

直接点击 Go 即可得到flag值。
有关知识
301 redirect: 301 代表永久性转移(Permanently Moved)
302 redirect: 302 代表暂时性转移(Temporarily Moved )
HTTP状态码301和302详解:
https://www.jianshu.com/p/995a3000f7d6
本题结束
3.技能树三:cookie
题目描述

打开后得到如下界面

题目考点
Cookie欺骗、认证、伪造
解题思路
按F12,在cookie设置中将 admin = 0 改为 admin = 1,刷新页面,得到flag值
或者抓包 改包后放包就可以了

有关知识
cookie:
在网站中,http请求是无状态的
也就是说即使第一次和服务器连接后并且登录成功后
第二次请求服务器依然不能知道当前请求是哪个用户
cookie的出现就是为了解决这个问题
第一次登录后服务器返回一些数据(cookie)给浏览器
然后浏览器保存在本地
当该用户发送第二次请求的时候
就会自动的把上次请求存储的cookie数据自动的携带给服务器
服务器通过浏览器携带的数据就能判断当前用户是哪个了
cookie存储的数据量有限
不同的浏览器有不同的存储大小
但一般不超过4KB
因此使用cookie只能存储一些小量的数据
cookie和session的关系与区别:
https://juejin.cn/post/6844903575684907016
本题结束
4.技能树四:基础认证
题目考点
HTTP 基础认证
爆破
题目分析
本题考察了在HTTP中对于基础认证的一些知识
要求使用爆破的方法来获得基础认证的账号密码
之后登陆获得flag
解题过程
访问 /flag 发现需要登录

挂上 BurpSuite 的代理
随便输个账号密码
(比如: 账号aaa 密码 bbb)访问
查看 HTTP 响应报文:

得到提示 do u konw admin ?
于是猜测账号是 admin
那么接下来就只需要爆破密码了
注意看到 HTTP 请求头部的 Authorization 字段:
|
Basic 表示是「基础认证」
后面的 YWFhOmJiYg== 用 base64 解码后是 aaa:bbb
也就是我们之前输入的 账号:密码
使用 BurpSuite 进行基础认证爆破
将报文发送到 Intruder
将 Basic 后面 base64 部分添加为 payload position

在 Payloads 选项卡下,选择 Payload Type 为 SimpleList
然后在 Payload Options 中点击 load 加载密码字典
Payload Processing -> Add-> Add Prefix(添加前缀)-> 输入 admin:

Payload Processing -> Add-> Encode(添加一个编码方式)-> 选择 Base64 Encode

Payload Encode 取消勾选的 URL-encode
不然你会看到 base64 之后的 = 会被转成 %3d
你就算爆破到天荒地老也不会出来

Start Attack ,然后按 Status 排序,看到状态码出现 200 的,即爆破成功

查看 Response 得到 flag

本题结束
5.技能树五:响应包源代码查看
题目描述与分析

登入解题页面,输入参数点击开始,发现是贪吃蛇页面

解题过程
按住F12,查看源码,发现flag,没想到直接出来了

本题结束
CTFHub-HTTP协议五关刷题解答的更多相关文章
- 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 手把手教你用C++ 写ACM自动刷题神器(冲入HDU首页)
转载注明原地址:http://blog.csdn.net/nk_test/article/details/49497017 少年,作为苦练ACM,通宵刷题的你 是不是想着有一天能够荣登各大OJ榜首,俯 ...
- SQL Labs刷题补坑记录(less1-less30)
补坑加1,这几天快速刷一下sqllabs 来巩固下sql注入基础吧,也算是把很久以前没刷的过一遍,do it! 第一部分: LESS1: 直接报错,有回显的注入, http://localhost/s ...
- [BUUCTF-Pwn]刷题记录1
[BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希 ...
- 【BZOJ-4590】自动刷题机 二分 + 判定
4590: [Shoi2015]自动刷题机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 156 Solved: 63[Submit][Status ...
- NOI题库分治算法刷题记录
今天晚自习机房刷题,有一道题最终WA掉两组,极其不爽,晚上回家补完作业欣然搞定它,特意来写篇博文来记录下 (最想吐槽的是这个叫做分治的分类,里面的题目真的需要分治吗...) 先来说下分治法 分治法的设 ...
- BZOJ4590 自动刷题机
Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法,然后开始写 ...
- HDU 自动刷题机 Auto AC (轻轻松松进入HDU首页)
前言: 在写这篇文章之前,首先感谢给我思路以及帮助过我的学长们 以下4篇博客都是学长原创,其中有很多有用的,值得学习的东西,希望能够帮到大家! 1.手把手教你用C++ 写ACM自动刷题神器(冲入HDU ...
- PAT甲级训练刷题代码记录
刷题链接:https://www.patest.cn/contests/pat-a-practise 1001 #include <iostream> #include <stdio ...
随机推荐
- 32 位和 64 位的 JVM,int 类型变量的长度是多数?
32 位和 64 位的 JVM 中,int 类型变量的长度是相同的,都是 32 位或者 4个字节.
- 学习zabbix(九)
一.Zabbix环境准备 [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [roo ...
- hackgame2018_签到
hackgame2018_签到 进入题目得到如下提示 尝试提交 发现这个输入框长度做了限制我们将前端js修改一下 然后提交以下这样就发现了flag这题比较简单--
- 10分钟go crawler colly从入门到精通
Introduction 本文对colly如何使用,整个代码架构设计,以及一些使用实例的收集. Colly是Go语言开发的Crawler Framework,并不是一个完整的产品,Colly提供了类似 ...
- 记录axios高效率并发的方法
// 首先我的请求是统一管理 方便创建拦截器 export function login(parameter) { return axios({ url: api.Login, ...
- 又快又好!巧用ChartJS打造你的实用折线图
又快又好!巧用ChartJS打造你的实用折线图 最终效果 本示例利用官方示例改造而成,生成带图示的折线图,标出各折线的名称,可以筛选想要显示的折线. 要实现最终效果,我们要分三步走: 生成折线图: 生 ...
- 用原生js写一个"多动症"的简历
用原生js写一个"多动症"的简历 预览地址源码地址 最近在知乎上看到@方应杭用vue写了一个会动的简历,觉得挺好玩的,研究一下其实现思路,决定试试用原生js来实现. 会动的简历实现 ...
- 基 vue-element-admin升级的Vue3 +TS +Element-Plus 版本的后端管理前端解决方案 vue3-element-admin 正式对外发布,有来开源组织又一精心力作,毫无保留开放从0到1构建过程
项目简介 vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,是 有来技术团队 继 youla ...
- Photoshop之用“色彩范围”命令抠像
1. 打开一个文件.执行"选择>色彩范围",勾选"本地化颜色族",然后在任务背景上单击取样. 2. 取好样以后点击确定,图片如下所示,执行"选择 ...
- EMS邮箱数据库常用命令(一)
案例任务:创建名为"book"的邮箱数据库,数据库文件和日志文件存储位置为"c:\book". 键入以下命令. New-MailboxDatabase -Nam ...