CTFHub-Web-HTTP协议

目录

一、HTTP协议

1、http属于无状态协议,请求方法如下:

2、HTTP包组成

3、HTTP回包(response)的状态响应码

二、解题步骤

1、请求方式

 2、302

3、Cookie

4、基础认证


一、HTTP协议

1、http属于无状态协议,请求方法如下:

HTTP1.1版本

get、post、head

HTTP1.1版本(新增6种方法)

options、put、patch、delete、trace、connect

方法的具体解释和用法大家参考百度或自行搜索,我简单说明常见的两个:get和post

get:获取资源,数据在url上显示着,大家可以看到;

post:提交数据,数据在HTTP包里,需抓包查看。

2、HTTP包组成

CTFHub-Web-HTTP协议_第1张图片

由起始行、头部、实体(协议包要传输的内容)组成。

上述图片第1行为起始行:内容是请求方法、url、HTTP协议版本

2-8行为head头部; 

头部下来空一行为实体所在,上述图片为get包,所以实体为空

3、HTTP回包(response)的状态响应码

CTFHub-Web-HTTP协议_第2张图片

 图片上箭头所指为状态响应码所在位置;

不同状态码对应的意思个人总结如下;

CTFHub-Web-HTTP协议_第3张图片CTFHub-Web-HTTP协议_第4张图片

CTFHub-Web-HTTP协议_第5张图片

二、解题步骤

CTFHub-Web-HTTP协议_第6张图片

1、请求方式

(1)、题目提示

CTFHub-Web-HTTP协议_第7张图片

(2)、题目显示现在的HTTP方法是get,让我们使用CTF**B方法就可以获得flag

我们直接抓包改方法:

CTFHub-Web-HTTP协议_第8张图片 

将get改掉;

CTFHub-Web-HTTP协议_第9张图片 

改掉之后结果返回400错误,说明改方法不对;

所以这我们不是直接复制该方法,他的目的是让我们猜那两个**是什么,因此正确的方法是:CTFHUB;

CTFHub-Web-HTTP协议_第10张图片

 直接拿下flag。

这一题猜那两个**很好猜,一说大家就能反应过来,主要就是大家要想到猜;

 2、302

(1)、题目提示

CTFHub-Web-HTTP协议_第11张图片

(2)、先解释一下302

302是HTTP协议中的一个状态码(Status Code)。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置。因此说明在我们抓取的包里会出现一个新的url链接来进行跳转。

(3)、点击give me Flag。抓包看包

CTFHub-Web-HTTP协议_第12张图片

直接拿下,很意外!

3、Cookie

 (1)、什么是cookie

简单的自我理解是:cookie是一个key-value结构的文本信息,他的作用就类似于"身份证",我们通过浏览器向服务器发起请求,如果服务器需要记录用户的状态,他就会给该用户发送一个cookie,浏览器会把它保存下来,等下次我们要再次访问这个服务器的时候,他就会直接带着cookie过去,完成用户认证。

简单的例子是:我们要访问一个资源,该网站让我们进行登录,当我们登录成功后,浏览器会记录下该网站颁发给用户的cookie,当用户再次访问这个网站时,浏览器会携带着cookie一起发送给服务器,服务器完成验证,我们直接进去了,不需要在登录页面再登陆一次。

更详细的参考大家可以看一下:深入理解Cookie - 简书 (jianshu.com)

(2)、题目提示

CTFHub-Web-HTTP协议_第13张图片 只有admin身份可以获取到flag。

(3)、burpsuit抓包

CTFHub-Web-HTTP协议_第14张图片

 cookie信息的admin=0,我们尝试将其改为1,查看效果

(4)、扔进repeater模块,进行改包

CTFHub-Web-HTTP协议_第15张图片

将cookie身份改为admin,成功获取flag。

(5)、拿下flag

ctfhub{ec0bfa99ed8bfc877a856761} 

4、基础认证

(1)、题目提示

在HTTP中,基本认证(英语:Basic access authentication)是允许http用户代理(如:网页浏览器)在请求时,提供 用户名 和 密码 的一种方式。详情请查看 https://zh.wikipedia.org/wiki/HTTP基本认证。

(2)、开启题目

CTFHub-Web-HTTP协议_第16张图片

一个登录页面,而且题目还给了一个附件,打开之后是一个密码本,又说到了基础认证,因此判定这里使用爆破进行登录。

(2)、抓包查看

CTFHub-Web-HTTP协议_第17张图片

CTFHub-Web-HTTP协议_第18张图片 

 可以看到用户名和密码经过了base64加密,格式为:用户名:密码

(3)、扔进intruder爆破模块,进行爆破

CTFHub-Web-HTTP协议_第19张图片

选择爆破所在位置,点击add

CTFHub-Web-HTTP协议_第20张图片 payload options ==》load导入题目附件给定的密码本

CTFHub-Web-HTTP协议_第21张图片 

payload process(对有效载荷进行处理,即添加规则)==》add添加规则

CTFHub-Web-HTTP协议_第22张图片 因为用户名密码格式是:用户名:密码,所以我们要添加前缀

前缀为admin:

这里要注意给前缀进行base64加密后,再添加,正确格式如下: 为什么用户名是admin,看下面的图片

CTFHub-Web-HTTP协议_第23张图片

因为用户名和密码经过了base64加密,所以添加加密规则,选则base64-encode,点击ok

CTFHub-Web-HTTP协议_第24张图片

最后一步,记得取消payload encoding,因为我们的格式里有冒号,所以不能让他编码。

CTFHub-Web-HTTP协议_第25张图片  接下来直接爆破:点击Start attack

CTFHub-Web-HTTP协议_第26张图片

 得到正确密码:进行解密

CTFHub-Web-HTTP协议_第27张图片

根据正确的密码前往登录

CTFHub-Web-HTTP协议_第28张图片

拿下flag。 

 

 

你可能感兴趣的:(#,靶场的WP,渗透学习笔记,http,网络协议,网络,web安全,前端)