Fiddler解决Tunnel to 443的问题

2021-02-20  本文已影响0人  静静地就好

一、问题

1、在正常设置抓取HTTP的网络数据后,手机抓包发现请求数据出现Tunnel to 443的问题:

图1

二、解决

1、检查抓包设置是否正确,可以参考我之前的文章

Fiddler手机抓包

Fiddler 抓取HTTPS的网络数据

2、检查设置无误后,发现还是不可以,网友提示可以设置脚本解决

脚本在此

varhosts ='zkd.me develop.dog';

FiddlerApplication.Log.LogFormat("Logger session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);

if(hosts.indexOf(oSession.host) >-1){

FiddlerApplication.Log.LogFormat("Capture session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);

if(oSession.HTTPMethodIs('CONNECT')){

FiddlerApplication.Log.LogString('create fake tunnel response');

oSession['x-replywithtunnel'] ='FakeTunnel';

return;

            }

if(oSession.isHTTPS){

FiddlerApplication.Log.LogString('switch https to http request');

oSession.fullUrl = oSession.fullUrl.Replace("https://","http://");

oSession.port =80;

            } 

FiddlerApplication.Log.LogFormat("Processed session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);

        }

FiddlerApplication.Log.LogFormat("Logger session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);

}

原话注释:这段代码的作用是判断如果这些指定的域名上有从浏览器传来CONNECT的请求时,直接返回一个假的Response,这时Fiddler不会再试图去让请求的实际响应者回应这个CONNECT请求,而是自己返回了一个请求。浏览器在收到这个请求以后不明就里,认为是服务器已经返回了安全信息,于是便愉快地继续发送请求。Fiddler在收到之后的请求,会将URL中的https替换为http,端口强制更换为80,再发给请求的实际响应者。多重启几次fiddler,最终你会发现,所有的https请求,都完美的被抓取了

3、实际上,我遇到的问题不是以上脚本解决的,因为我可以捕捉到其他的请求

图2

4、后面几经思考,是因为小程序抓包的时候需要打开调试模式,打开调试模式后,我就可以正常抓取到小程序的请求了

图3

5、还有些人说443可能是因为证书过期导致的,如果是证书过期的话,那么重新安装证书应该就可以了

三、拓展

1、HTTP请求和HTTPS请求混在一块会看的眼花,通过脚本保存,可以让HTTP请求和HTTPS请求显示不一样的颜色。脚本如下

//这段代码随便放哪,只要在这个OnBeforeRequest方法里就行了。

        if(oSession.isHTTPS && oSession.url.indexOf(oSession.host)> -1){ 

            oSession["ui-color"] = "blue"; 

        } 

        if(!oSession.isHTTPS && oSession.url.indexOf(oSession.host)> -1){ 

            oSession["ui-color"] = "green"; 

        }

图4

2、效果如下

图5
上一篇下一篇

猜你喜欢

热点阅读