使用 wireshark 抓包,https,http2

首先下载安装 https://www.wireshark.org/download.html

wireshark 的工作过程为:

1、设置要捕获哪个网卡上的流量

捕获 --> 选项

首先你得知道当前机器的IP,然后就很容易找到是哪个网卡了。

在这里插入图片描述

2、设置要捕获哪些内容

捕获 --> 捕获过滤器

这里我要捕获一个http请求,它是HTTP的80端口。

在这里插入图片描述

设置好这两步它就会开始捕获数据了。

3、设置显示过滤器

设置好捕获过滤器之后,捕获的内容可能依然很多,这个时候就需要设置一下要显示哪些内容了,也就是显示过滤器。

在这里插入图片描述

输入的内容http and ip.dst == xxxx要遵循一定的语法。

使用 andor 来连接。

比较操作符有:等于== 、不等于!=、大于>、小于<、大于等于>= 、小于等于<=

常用的有

表达式 含义
http 只查看http请求
ip.dst == 192.168.2.157 请求的目标ip地址
tcp.dstport == 80 目标端口
http.request.method == GET http请求方式
http.request.uri == "/read5/heartbeat" 请求uri

其次可以点击输入框左边的小图标保存下来。

4、追踪流

比如,我要查看上面某个http请求的具体内容,将其选中,追踪流,http流

在这里插入图片描述

就可以查到到请求信息和响应信息的全部内容。

5、修改显示的时间格式

上面的列表中第二列为请求发出的时间。

视图 --> 时间显示格式 --> 日期和时间

在这里插入图片描述

6、捕获https的请求

首先设置捕获过滤器为tcp,然后输入显示过滤器ip.dst==47.104.146.209 and tcp.dstport==443。发现列出的信息是加密的,这个时候是需要配置证书的,要知道浏览器中是包含证书的。

当系统环境变量中存在SSLKEYLOGFILE这个变量的时候,chrome与firefox在访问https网站的时候会将密钥写入这个环境变量中,如果在wireshark中设置一下,这样就可以解析https的流量了。

编辑 --> 首选项 --> Protocals --> TLS
在这里插入图片描述

比如我设置 SSLKEYLOGFILE=D:\sslkeylog\sslkey.log,这个文件要手动创建。

重启浏览器

注:不抓包时记得把环境变量删掉,以避免性能浪费和安全性问题

同样都是HTTPS,有的使用的是HTTP/1.1;有的使用的是HTTP/2协议,分别使用http和http2来过滤,如何知道使用的是什么协议呢,打开浏览器调试,右键名称,在弹出的下拉框中勾上协议。

目前都使用的是TLS,它是SSL的升级版本。

https://www.baidu.com 为例,配置了TLS文件之前捕获的是Application Data,啥也看不到,设置了之后,就可以看到具体信息了。
显示过滤器tcp.port==443 and ip.dst==14.215.177.38,然后访问https://www.baidu.com/
在这里插入图片描述
从浏览器的调试窗口也看到百度首页使用的是http/1.1协议。

来测试一个基于 http2 的 https 接口。显示过滤器为http2

在这里插入图片描述
发现请求和响应分开列出来了,所以响应的目标IP是我本机IP

点击200 OK这一条,点击Data就能看到响应的内容了。或者右键200 OK,选中追踪流,http2 stream 也可以看到内容
在这里插入图片描述
我们来测试一下 post方式的接口。
在这里插入图片描述
右键追踪流,可以看到请求参数和响应结果。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/raoxiaoya/article/details/123459534