HTTPS协议下Fiddler抓包

浏览器通过http协议发送给服务器的内容很容易被拦截,因此,用http协议传输一些敏感数据的话是非常危险的,因此,现在好多网站都采用的是https协议。

    fiddler默认情况下只会捕获http请求,需要设置后才能捕获https,接下来让我们一起简单了解一下https协议,以及如何通过fiddler对其进行抓包。


1

什么是HTTPS 


简单理解,https就是加过密的http,使用https后,浏览器客户端和web服务器传输的数据是加密传输的,只有客户端和服务端知道具体内容。

采用HTTPS的网站都需要去数字证书认证机构(Certificate Authority,CA)申请证书。通过这个证书,浏览器在请求数据前与web服务器有几次握手验证,以证明相互的身份,然后对http请求和响应进行加密。


2

Fiddler如何捕获https会话


默认情况下,fiddler不会捕获https协议的会话,需要进行设置:

菜单栏->Tools->Options->Https页签,按照下图进行勾选:


HTTPS协议下Fiddler抓包


如果有弹出其他弹窗,选择yes进行证书安装:


HTTPS协议下Fiddler抓包


HTTPS协议下Fiddler抓包


安装完整后,打开浏览器访问一下百度首页,检查是否可以捕获到请求信息。



3

https证书的安装和查看 


证书安装:

如果浏览器访问https网址出现提示说 此连接不被信任时,可以在fiddler中导出证书文件,安装到浏览器中。

导出证书步骤:


HTTPS协议下Fiddler抓包


证书安装步骤(以谷歌浏览器为例,不同浏览器操作大同小异):


HTTPS协议下Fiddler抓包


证书查看:

1、用键盘上的Win+R快捷键,然后输入certmgr.msc命令


HTTPS协议下Fiddler抓包


2、通过fiddler工具https协议配置页面的actions下的一个选项进行打开:


HTTPS协议下Fiddler抓包


打开本地证书管理器页面如下:


HTTPS协议下Fiddler抓包


Fiddler捕获https的握手验证请求


在使用浏览器访问百度首页的时候,可以查看到,fiddler的会话列表会出现很多“Tunnel to”的请求,如下图所示:


HTTPS协议下Fiddler抓包


Http协议在客户端和服务器之间传输的时候,需要建立一个通道,这个通道称为Tunnel,客户端和服务器之间的通信都是在这条Tunnel的基础之上实现的。

当客户端无法直接访问某些网络时,只能通过代理服务器访问网络,然后,将内容转发给客户端,从宏观上看,客户端与服务器端就像建立了一条隧道一样。但是由于http tunnnel可控性不强,所以,服务器通常会限制”可connect的端口”(一般只开放SSL的443端口)。因为fiddler是代理软件,访问百度网页(使用了https协议),会使客户端用connect方法与目标服务器建立http tunnel,一旦connection建立完成,后续fiddler会转发、接收所有的tcp stream。

当然,并不是所有的受限网络(restricted network),https通信时,都会使用connect建立http tunnel,如果目标服务器限制connect方法,那么就会使用其它方法来建立通道(post/get)

如果觉得会话列表的tunnel to请求信息太多,影响使用的话,可以设置隐藏掉(Rules->Hide CONNECTs)


HTTPS协议下Fiddler抓包

上一篇:QT文件夹定位(网友提供)


下一篇:axios添加了header信息后发送的get请求自动编程option请求了