一、fiddler工具介绍:
Fiddler是一个通过代理的方式进行抓包工具,运行时会在本地建立一个代理服务,默认地址:127.0.0.1:8888;
1)IE浏览器:
Fiddler开启之后打开IE浏览器,在如下图查看到IE的PROXY会自动变成上述地址,通过设置的代理来抓取IE浏览器与服务器之间的所有HTTP(s请求);
2)火狐CHROME需要手动设置代理:
A.在Fiddler中进行设置:
Toos->Telerik Fiddler Options->HTTPS->Capture HTTPS CONNECTs | Toos->Telerik Fiddler Options->HTTPS->Actions->Export Root Certificate to Desktop
B.火狐浏览器中设置:
导入后在选项->常规->网络代理设置中选择“使用系统代理设置”
设置完成,就可以使用了。退出的时候FIDDLE会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问;
二、Fiddler工作原理:
首先FIddler截获客户端浏览器发送给服务器的fiddler,此时还未建立握手;
第一步:fiddler向服务器发起请求进行握手,获取到服务器的CA证书,用根证书公钥进行解密,验证服务器数据签名,获取服务器CA证书公钥;
第二步:Fiddler伪造自己的CA证书,冒充服务器证书传递给客户端浏览器;
第三步:客户端浏览器生成HTTP(S)通信用的对称密钥,用fiddler伪造的证书公钥加密后传递给服务器,被Fiddler截获;
第四步:Fiddler把截获的密文用自己伪造证书的私钥解开,获得HTTPS通信用的对称密钥;
第五步:Fiddler将对称密钥用服务器证书公钥加密传递给服务器,服务器用私钥解开后建立信任,握手完成 ,用对称密钥加密消息,开始通信;
第六步:Fiddler接收到服务器发送的密文,用对称密钥解开,获得服务器发送的明文,再次加密,发送给客户端浏览器;
第七步:客户端向服务器发送消息,用对称密钥加密,被Fiddler截获后,解密获得明文。
由于Fiddler一直拥有通信对称密钥,所以在整个HTTP(S)通信过程中信息对其透明 。