0
点赞
收藏
分享

微信扫一扫

【漏洞复现】H3C 路由器多系列信息泄露漏洞

花海书香 2024-02-20 阅读 40

1. 初识http

         HTTP 最新的版本应该是 HTTP/3.0,目前大规模使用的版本 HTTP/1.1;

        前面的 TCP与UDP 和http不同,HTTP 的报文格式,主要分两个部分来看待:请求与响应,因为HTTP 协议,是一种"一问一答"结构模型的协议,同时请求和响应的协议格式,是有所差异的

1.1 抓包工具 

1.1.1 下载和安装fiddler

        我们如果要查看到 HTTP 请求和响应的格式就需要使用抓包工具,所谓的抓包就是把网卡上经过的数据获取到,并显示出来;

        下面主要学习一下fiddler的下载和使用:

1.1.2  fiddler的介绍

        Fiddler 本质上是一个"代理”,可能会和其他的代理软件冲突; 

1.1.3 fiddler 实际使用

       1、 ctrl +a全选所有的请求.,delete 删除,对于左侧fiddler抓到的包,根据不同的颜色来进行简单的区分:

        当我们打开一个网页的时候,往往不只是和服务器进行一次操作,大概率是多次操作

1.2 关于请求和响应

        请求的格式如下:

         响应的格式如下:

1.3 关于URL

         URL是计算机中的非常重要的概念,不仅仅是在 HTTP 中涉及到,我们之前学习jdbc的时候就接触到的,如下所示:

        同时下面就是对url的详细讲解:

        #ch1 片段标识符:
        有的网页内容比较长,就可以分成多个"片段”,通过片段标识符,就可以完成页面内部的跳转;

        对于 query string 来说,如果 value 部分要包含一些特殊符号的话,往往需要进行 urlencode 操作。主要是因为+?:/. 这些符号在 url 中都已经有特殊用途了,如果在 value 中,也包含特殊符号,可能就会使浏览器/http服务器,对于 url 的解析就出现 bug ,urlencode 本质上是一种"转义字符",+的 ascii 就是 2B, 在前面加上 % 表示这是转义的结果,即效果如下所示:

2. 深入学习http

2.1 连接请求的方法

        GET 请求,通常会把要传给服务器的数据,加到 url的 query string 中;POST 请求,通常把要传给服务器的数据,加到 body 中.

2.2 学习http请求的方法

        http的请求方法如下所示:

                              

        在当前的使用环境中,部分请求方法已经不经常使用了,大部分使用的请求方法只有三个,get,post和put,同时任何使用 POST 的场景,换成 PUT 完全可以;

2.3 认识 Header

        Header 里的键值对是很多的.下面主要是挑几个重要的介绍一下;

Host:服务器所在的ip和端口号

        即Host:www.bilibili.com,这个信息在url中也存在,但是在使用代理的情况下,Host的内容是可能和url中的内容是不一样的;

content-Length:body中数据的长度
Content-Type:body 中数据的格式

        请求里有 body,才会有这两个属性.通常情况下 GET 请求没有 body; POST 请求有 body;

        由于TCP 涉及到粘包问题,HTTP 在传输层就是基于 TCP 的。使用同一个 TCP 连接传输多个 HTTP 数据包,就会使多个 HTTP 数据包在 TCP 接收缓冲区中挨在一起,接收方解析的时候,就需要能够清楚 HTTP 数据包之间的边界;对于 GET 这种没有 body 的请求,直接使用空行(分隔符),对于post这种有 body 的请求,就结合空行和content-Length;

        body 中的格式,可以选择的方式是非常多的,如下所示:

        后续给服务器提交给请求,不同的 Content-Type,服务器处理数据的逻辑是不同的;服务器返回数据给浏览器,也需要设置合适的 Content-Type,浏览器也会根据不同的 Content-Type 做出不同的处理;

2.4 User-Agent(简称 UA)

        上古时期,网页非常简单,就只是一些单纯的文字,浏览器功能也比较原始.后来,网页内容越来越丰富了,浏览器的功能也开始逐渐升级.

        这个升级过程也是很快的.(新的浏览器出现的很快),新的浏览器诞生之后,并不是立即就占据全部市场.相当一部分时间里,新浏览器和旧浏览器是并存的;网站的开发者就遇到困难了,网站开发者就需要考虑到是否要兼容旧版本浏览器;事实上,就可以使用 User-Agent 来进行区分的.UA 中记录了浏览器的版本. 哪个版本的浏览器都支持哪些特性,哪些特性是容易获取的,网站开发者就可以看看 UA 里的内容;

        现在,浏览器之间的差异非常小了.此时的UA 的作用就没那么关键了,所以UA主要是用来区分 PC端还是移动端。

ps:本次的学习内容就到这里了,如果大家感兴趣的话就请一键三连哦!!!

举报

相关推荐

0 条评论