CTFHub Http协议

1、请求方式

由题目可知,考察的是HTTP请求方法,在Http/1.1协议中定义的八种方法为GET, POST 、HEAD、OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

CTFHub Http协议_第1张图片

进入题目后,发现提示,HTTP Method 是可以自定义的,并且区分大小写,直接用 CTFHUB 方法请求 index.php 即可拿到 flag。

CTFHub Http协议_第2张图片

 

2、302跳转

302是Http协议的临时重定向状态码。进入页面后发现没有任何消息,按f12进入控制台,点击Give me Flag按钮,发现页面没有任何变化,但其实页面已经发生了跳转,用curl访问新的跳转页面即可得到flag值。

CTFHub Http协议_第3张图片

3、cookie

访问题目页面发现给的提示是“hello guest,only admin can get flag”,我们挂上 BurpSuite 之后重新访问题目页面,在cookie发现admin=0字段,猜测服务器可能是根据此字段来判断浏览者身份。

CTFHub Http协议_第4张图片

我们把这个请求放入“repeater”中修改Cookie: admin=0为Cookie: admin=1后发送,发现在响应页面里包含Flag。

CTFHub Http协议_第5张图片

4、基本认证

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

CTFHub Http协议_第6张图片

进入题目页面,发现点击click会出现认证页面,

CTFHub Http协议_第7张图片

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

CTFHub Http协议_第8张图片

CTFHub Http协议_第9张图片

得到提示 do u konw admin ?,于是猜测账号是 admin , 那么接下来就只需要爆破密码了。注意看到 HTTP 请求头部的 Authorization 字段,后面的YWFhOmjiYg==用base64 解码后是 aaa:bbb,也就是我们之前输入的账号:密码。

 使用 BurpSuite 进行基础认证爆破

(1)将报文发送到 Intruder, 将 Basic后面 base64部分添加为payload position

CTFHub Http协议_第10张图片

(2)在 Payloads选项卡下,选择 Payload Type为SimpleList,然后在 Payload Options 中点击 load 加载密码字典

CTFHub Http协议_第11张图片

(3)Payload Processing -> Add-> Add Prefix(添加前缀)-> 输入 admin:

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

CTFHub Http协议_第12张图片

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

CTFHub Http协议_第13张图片

(5)Start Attack ,然后按 Length 排序,并看到状态码出现200的,即爆破成功

CTFHub Http协议_第14张图片

CTFHub Http协议_第15张图片

查看 Response,得到flag

CTFHub Http协议_第16张图片

5、响应包源代码

题目页面打开后是一个网页版的“贪吃蛇”小游戏

CTFHub Http协议_第17张图片

根据题目要求是查看响应包源代码,可以使用burpsuite,也可以使用浏览器自带的开发调试工具,按f12进入调试界面,查找flag中的关键字段cfthub,就可以得到结果。

CTFHub Http协议_第18张图片

 

 

 

 

 

 

 

你可能感兴趣的:(CTF)