一、Fiddle简介
Fiddler是一款免费且功能强大的数据包抓取软件。是位于客户端和服务器端之间的http(s)代理,它通过代理的方式
获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,记录所有客户端和服务器间的http请求,针对特定的
http(s)请求,分析网络传输的数据,支持监视,还可以设置断点、修改请求的数据和服务器返回的数据(弱网测试原理)。
二、Fiddle工作原理:
Fiddler工作于OSI七层模型中的应用层(&&-&&),Fiddler在浏览器与服务器之间建立一个代理服务器,能够捕获通过的http(s)请求。
Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。
Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据(这就可以抓手机的包了)。
数据传递流程大致如下:
三、Fiddle抓取HTTPS原理:
现在APP中的数据传输基本上都使用HTTS传输,传输的数据都是经过加密的,这增加了我们分析数据包的难度,
还好Fiddler除了可以抓取HTTP数据包,还可以抓取HTTPS数据包。
由于HTTPS传输需要使用到CA证书,所以抓取https数据包时需要做一些特殊配置。
Fiddler截取HTTPS报文的流程大致如下:
(1) 客户端请求建立HTTPS链接,发送客户端支持的加密协议及版本列表等信息给服务器端。
(2) Fiddler接受客户端请求,并伪装成客户端向WEB服务器发送相同的请求。
(3) WEB服务器收到Fiddler的请求以后,从请求中筛选合适的加密协议。并返回服务器CA证书,证书中包括公钥信息。
(4)Fiddler收到WEB服务器的响应后,保存服务器证书并伪造一个自签名的CA证书,伪装成服务器,把该证书下发给客户端。
(5)客户端验证证书合法性。(Fiddler能否抓取到HTTPS报文关键看这一步)
(6)客户端生产对称密钥,并使用伪造的公钥证书进行加密,发送给服务器。
(7)Fiddler拦截客户端的请求以后,使用伪造的私钥解密该报文,获取对称加密秘钥,并使用真正服务器证书中带的公钥加密该对称密钥发送给
WEB服务器。(此时对称密钥已经泄露了,以后可以使用该秘钥解密客户端和服务器端传输的数据)
(8)WEB服务器接收到客户端发送的加密的对称密钥后,使用私钥解密,并使用对称密钥加密测试数据传给客户端。
(9)Fiddler使用前面获取的对称密钥解密报文。
(10)客户端验证数据无误以后,HTTPS连接就建立完成,客户端开始向服务器发送使用对称密钥加密的业务数据。
(11)Fiddler使用前面获取的对称密钥解密客户端发送的数据,并重新加密转发给服务器端。
参考:https://blog.csdn.net/weifengjuan/article/details/87867786#commentBox