[极客大挑战 2019]Http1

目录

一、http

二、http数据包参数

请求消息:

响应消息:

其他概念:

三、[极客大挑战 2019]Http1

前端检查

         请求头

 


一、http

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

二、http数据包参数

HTTP数据包,通常指的是HTTP消息,它由两部分组成:请求行(对于请求消息)或状态行(对于响应消息),以及随后的一系列头部字段(headers),最后是消息体(body,可选)。以下是HTTP数据包中常见的参数和组成部分:

请求消息:

  1. 请求行

    • 方法:如GET、POST、PUT、DELETE等,表示要执行的操作。
    • URL:请求的资源路径。
    • HTTP版本:如HTTP/1.1或HTTP/2。

    示例:GET /index.html HTTP/1.1

  2. 请求头部

    • Host:请求的服务器域名。
    • User-Agent:发出请求的客户端信息。
    • Accept:客户端可接受的MIME类型。
    • Accept-Language:客户端可接受的语言。
    • Accept-Encoding:客户端可接受的压缩编码。
    • Content-Type:请求体的媒体类型。
    • Content-Length:请求体的长度。
    • Connection:连接管理参数,如keep-alive
    • Cookie:存储在客户端的cookie信息。
    • Authorization:认证信息。
  3. 请求体

    • 对于GET请求,通常为空。
    • 对于POST请求,包含了发送给服务器的数据。

响应消息:

  1. 状态行

    • HTTP版本:如HTTP/1.1。
    • 状态码:表示请求结果的三位数字,如200表示成功,404表示未找到。
    • 状态信息:对状态码的简短描述。

    示例:HTTP/1.1 200 OK

  2. 响应头部

    • Content-Type:响应体的媒体类型。
    • Content-Length:响应体的长度。
    • Cache-Control:缓存指令。
    • Set-Cookie:设置客户端cookie的指令。
    • Server:服务器软件信息。
    • Location:常用于重定向,指定新资源的URL。
    • Connection:连接管理参数。
  3. 响应体

    • 服务器返回的数据,如HTML页面、图片、JSON数据等。

其他概念:

  • 持久连接(Persistent Connections):HTTP/1.1默认支持持久连接,允许多个请求和响应在同一个TCP连接上复用。
  • 分块传输编码(Chunked Transfer Encoding):一种数据传输机制,允许服务器在知道整个响应体大小之前就开始发送数据。
  • 管线化(Pipelining):在持久连接中,客户端可以在收到前一个响应之前发送下一个请求。
  • HTTP/2:HTTP的第二个主要版本,引入了头部压缩、多路复用等特性,以减少延迟和提高性能。

三、[极客大挑战 2019]Http1

前端检查

找出Secret.php也是一个问题

进入Secret.php界面

显示请求头不对

Referer协议就是告诉服务器我从哪里来。所以抓包修改请求头 

请求头

HTTP Referer(实际上正确的拼写应该是 "referrer",但遵循传统,通常写作 "referer")是一个HTTP请求头字段,它指示一个请求是从哪个页面发起的。也就是说,它包含了一个URL,该URL是用户点击链接来到当前请求页面的原始页面地址。

这个参数通常用于以下场景:

  1. 防止CSRF攻击:网站可以通过检查Referer头部来确认请求是否来自合法的页面。

  2. 分析流量来源:网站管理员可以使用Referer头部来分析用户是从哪些网站或页面链接到他们网站的。

  3. 个性化内容:基于用户是从哪个网站来的,提供个性化的内容或服务。

  4. 广告跟踪:广告网络使用Referer头部来跟踪广告点击和来源。

  5. 防盗链:一些网站使用Referer头部来检测和阻止他们的资源被其他网站非法链接(即所谓的 "hotlinking")。 

通过添加请求头来告诉服务器访问来源

Referer:https://Sycsecret.buuoj.cn

 

 

 

User-Agent 是一个 HTTP 请求头字段,用于提供发出请求的客户端(通常是浏览器)的信息。这个字段允许服务器识别客户端的类型、操作系统、浏览器及其版本等信息,从而可以根据这些信息提供定制化的响应或重定向。

User-Agent 的结构:

一个典型的 User-Agent 字符串包含了多个部分组成,通常包括:

  1. 浏览器名称:如 "Mozilla"(很多浏览器为了兼容性在 User-Agent 中包含此名称)。
  2. 浏览器版本:具体的浏览器版本号。
  3. 操作系统:客户端使用的操作系统,如 Windows、macOS、Linux、iOS、Android 等。
  4. 设备信息:如果是移动设备,可能包含设备类型或型号。
  5. 浏览器引擎:如 Gecko(Firefox)、Blink(Chrome)、EdgeHTML(旧版 Edge)等。
  6. 附加信息:可能包括一些额外的标识符或扩展信息。

示例

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3

这个 User-Agent 字符串表示:

  • 使用的是 Chrome 浏览器,版本为 58.0.3029.110。
  • 浏览器运行在 Windows 10 操作系统上,64位版本。
  • 使用了 WebKit(通过 "AppleWebKit/537.36" 表示,这是 Safari 浏览器的浏览器引擎,也被 Chrome 和其他浏览器使用)。
  • 字符串以 "Safari" 结尾,表示 Chrome 的用户代理字符串模式。

使用场景:

  1. 内容协商:服务器可以根据 User-Agent 来提供适当的内容,如为移动设备提供优化的页面。
  2. 功能检测:通过识别浏览器和版本,服务器可以决定支持哪些特性或需要哪些特定的修复。
  3. 统计分析:网站可以使用 User-Agent 字符串来收集访问者使用的浏览器和操作系统的统计信息。
  4. 个性化体验:根据访问者的设备和浏览器特性,提供定制化的用户体验。

添加后访问,提示请使用 Syclover 浏览器,这就可以想到用User-Agent协议来伪造访问工具为 Syclover 浏览器,这个协议就是告诉服务器我是用什么访问的 .修改 User-Agent 

 User-Agent: Syclover

添加其参数后出现该界面:你只能在本地阅读

 

X-Forwarded-For 是一个 HTTP 请求头字段,用于识别通过代理服务器或负载均衡器连接到 Web 服务器的客户端的原始 IP 地址。当客户端通过一个或多个代理服务器与 Web 服务器通信时,代理服务器可以在 X-Forwarded-For 头中添加或追加客户端的 IP 地址,以确保 Web 服务器能够识别原始请求的来源。

使用场景:

  1. 代理服务器:当客户端通过代理服务器发送请求时,代理服务器可以在请求头中添加 X-Forwarded-For 字段,包含客户端的 IP 地址。

  2. 负载均衡器:在负载均衡的场景中,X-Forwarded-For 可用于追踪请求经过的每个代理的 IP 地址。

  3. 分析流量:Web 应用程序可以使用 X-Forwarded-For 来分析流量来源,了解访问者的真实 IP。

  4. 地理位置定位:基于客户端 IP 地址提供地理位置服务。

  5. 日志记录:在服务器日志中记录原始客户端 IP 地址,而非代理服务器的地址。

那只能在本地的话,我们可以伪造本地ip 127.0.0.1,所以我们可以利用X-Forwarded-For协议来伪造只需要在 header 添加

  X-Forwarded-For:127.0.0.1 

 最后获取flag

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值