CTFHUB | HTTP协议

目录

请求方式

HTTP/1.1 协议中定义了以下八种方法:

302跳转

302跳转(HPPT重定向)

Cookie介绍

基本认证

HTTP基本认证

响应包源代码


请求方式

我们先来了解一下什么是HTTP协议中的请求方式,HTTP 请求方法, HTTP/1.1协议中共定义了八种方法(也叫动作)来以不同方式操作指定的资源。

分别是:

HTTP/1.1 协议中定义了以下八种方法:

  1. GET:请求获取指定的资源。
  2. HEAD:请求获取资源的响应头信息。
  3. POST:向指定资源提交数据进行处理请求(例如提交表单或上传文件)。数据包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  4. PUT:从客户端向服务器传送的数据取代指定的文档的内容。
  5. DELETE:请求服务器删除指定的页面。
  6. CONNECT:用于代理服务器,与服务器建立隧道。
  7. OPTIONS:允许客户端查看服务器的性能。
  8. TRACE:回显服务器收到的请求,主要用于测试或诊断。

看题目,提示我们需要做的是把请求方式GET换为CTFHUB,它就会给我们flag。先用burpsuite抓包,然后将第一行GET修改为CTFHUB,然后放行,就可以得到flag啦。

本题完。

302跳转

题目提示为302跳转和HTTP临时重定向,我们先来了解一下新概念。

302跳转(HPPT重定向)

302跳转,即HTTP临时重定向,是一种网页状态码,表示一种临时网页的重定向,当浏览器或爬虫请求一个URL时,服务器返回一个302状态码表示用户请求的资源暂时被移动到了一个新的URL上,这就像是A网页告诉访问者,“这里没有你想要的资源,它们已经被暂时移动到了B网页上,你要是想要找到它们的话可以临时去B网页查看。”

302跳转是网站管理中一种常用的工具,可以在不影响用户体验的情况下,临时将用户导向另一个网页。常用与网站的更新和维护将用户导向至通知界面;促销或活动时将用户导向至活动界面等。

与301跳转不同的是,301跳转是永久重定向,表明资源已经永久移动到了新的URL。搜索引擎在处理这两种状态码时也会有一定的区别:
对于301跳转,搜索引擎将会更新索引中的链接;
而对于302跳转,搜索引擎通常会保持原有的链接,因为它的重定向通常是暂时的。

了解了这个原理,再回过头来看这一题。

首先抓包Give me Flag这个请求,得到的数据包相当于是A页面,然后放行数据包,由于这里是302跳转,所以服务器第一次返回的response相当于是告诉我们想要的Flag在B页面。由于这里是302跳转,是临时重定向,所以一直在浏览器中点击Give me Flag是没用的,因为重定向是临时的,在用户再次重新发起请求时,使用的还是原先的URL(A页面),所以我们需要在Brupsuite中的A页面基础上再次发送数据包,从而重定向至B页面。

也就是说,在浏览器中重新发起请求时,我们是不知道重定向链接的,无论发起多少次请求都是去访问A页面获得B页面的URL,而在Burpsuite的repeat界面重新发起请求是在知道重定向链接的基础上,因此请求会将我们带到重定向链接B页面中。

因此,抓包,发送到重放器

点击第一次发送获取临时重定向地址,然后再次点击发送访问重定向的地址。

这就是默认的A页面,里面包含着临时跳转的B页面URL

再次点击发送,系统访问的就是B页面的URL,得到了flag。

本题完。

我们先来了解一下什么是Cookie

Cookie介绍

Cookie是一种由网站创建并保存在用户计算机上的小型数据片段,它的主要目的是让网站能够记住有关用户的信息。当用户浏览网站时,网站可以要求浏览器储存这些数据,并在用户后续访问网站时再次发送给服务器。这样,网站可以记住用户的设置,登录状态,购物车中的商品等信息,从而提升用户体验。

Cookie中通常包含以下信息:
1.名称:唯一标识这个cookie的名称。

2.值:存储在cookie中的十级信息,通常是加密的。

3.过期时间,cookie存在的时间。一旦达到这个时间,cookie就会自动删除,如果没有设置过期时间,cookie通常会在关闭浏览器后删除。

4.路径:指定哪些网页可以接受这个cookie,如果设置为根目录(/),则整个网站的页面都可以访问这个cookie。

5.域:指定那个域(网站)可以访问这个cookie。这有助于提高安全性和隐私,防止跨站点请求伪造攻击。

6.安全标记:如果这个属性被设置,那么只有在使用HTTPS加密链接时,浏览器才会发送cookie,这有助于保护数据免受中间人的攻击。

通过使用cookie,网站能够为用户提供更加个性化,更加便捷的浏览体验,例如,不需要每次访问时都重新登陆,或者能够记住用户的偏好设置等等。然而,对于隐私保护来说,cookie也引发了一些担忧。因为它们可以被用来跟踪用户在网上的行为,因此,许多网站在首次访问是都会要求用户使用cookie,这是遵守隐私法规的一部分。

cookie还会引起许多数据泄露的风险,攻击者可以利用跨站脚本攻击(XSS)将恶意脚本注入到网页中从而访问用户的cookie,cookie中包含许多敏感信息,如回话令牌等。一旦被恶意攻击者或网站获取到cookie,他们可能伪装为用户与服务器进行交互,窃取或篡改用户信息,诱导用户进行未经授权的危险操作。

例如,美国著名的影视网站Netflix就曾有cookie漏洞,攻击者可以获取付费用户的cookie信息,从而获取其账号和密码,或者通过第三方扩展程序直接用cookie登录网站白嫖会员。

了解了什么是cookie,我们就可以来做这道题了。

显示只有admin用户可以得到flag,结合题目,这里验证用户是否为admin的方式就是通过cookie。因此,我们只需要修改数据包中的cookie信息,伪装为admin,就能得到flag。

抓到的cookie信息为admin=0,在Web开发中,0通常被认为是“假”或“无”,所以这里是解释用户不是admin账户,不具备管理员权限。反之,1代表“真”和“有”,意味着用户是admin账户。所以这里只需要将admin=0修改为admin=1,即可伪装为admin登录。

放行后即可得到flag。

当然,实战中的cookie肯定没那么简单,cookie数据一般都会被加密,所以实战中还需要更加深入的分析,才能利用得到的cookie信息。

本题完。

基本认证

HTTP基本认证

在HTTP中,基础认证就是允许用户代理(如浏览器)在发起请求时提供账号和密码的一种方式。在进行基本认证的过程中,请求的HTTP头字段会包含Authorzation字段,形式为:Authorzation:Basic<凭证>。这里的凭证是账号和密码的组和的base64编码。

例如这一道题:

点击click,弹出一个登录窗口,结合题目附件密码信息,可以知道这道题是简单的爆破。


需要爆破的地方是密码,那么用户名呢?其实我也不知道这里的用户名是多少,看了网上的好几篇wp,也没有发现用户名为什么是admin,从哪里来的不知道,像这样,只能凭借着经验盲猜。输入用户名admin,密码随便输,然后使用burpsuite抓包,这里我们选中Authorization:Basic后面的base64编码可以看到,就是我们输入的账户和密码。需要爆破的就是这里。请注意这里的解码框中内容,admin后面是带一个:的,这就是前面提到的账号和密码的组和,在下一步操作中要用到。右键发送到intruder模块进行爆破。

选中我们需要爆破的base64编码内容,添加payload的位置。

 导入附件中的密码

对payload进行一些必要的设置,首先添加前缀admin:,这里的冒号不能少,前面已经说过了,账号和密码的组和。然后添加编码为base64-encode,意为将字典中的所有密码经过base64编码后再爆破。注意,这里的URL编码字符一定要取消勾选,否则密码经过base64编码后带的=会被编码,从而爆破失败。确认无误后即可开始攻击。

跑完字典后,检索长度不一的密码,或者看状态码,200就是有正常的响应。

最后在响应中就可以看到flag啦。

本题完。

响应包源代码

既然说了HTTP响应包源代码查看,那我们就按F12到响应包源代码中看看。

直接发现了flag。

本题完。

  • 30
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值