CTFHub Http协议

1、请求方式

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

 

 

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

方法1:

 将原来的GET方法改为CTFHUB即可,发送。

 查看响应包,发现出现flag。

 方法2:

通过Burp抓包改请求方法。

 

将原来的GET方法改为CTFHUB即可,GO一下即可得到flag。

 

方法3:

 

GET改为CTFHUB,点击Forward。即可得到flag

 方法4:

通过curl获取

 2.302跳转

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

 3.cookie

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

方法1:

 

 

 方法2:

 

 4.基本认证

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

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

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

 

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

 使用 BurpSuite 进行基础认证爆破

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

 

 

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

 

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

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

 

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

 

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

 

 

查看 Response,得到flag

 

 5.响应源代码

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

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

 

原文地址:https://www.cnblogs.com/AdairHpn/p/13493640.html