Fiddler会话栏显示Tunnel to….443

前言:如果你看到此篇文章是为了解决抓包问题的话那么请看我的其它文章介绍。此篇文章只是介绍基础的知识,关于抓包成功页面的Tunnel to….443太多,从而来隐藏的问题。

一、HTTPS通信

1、最基本的https通信

普通的https通信,具体的过程就不解释了.....

2、加入了Fiddler之后

Fiddler中的HTTPS通信

1、Fiddler截获客户端发送给服务器的HTTPS请求,Fiddler伪装成客户端向服务器发送请求进行握手。

2、服务器发回相应,Fiddler获取到服务器的CA证书,用root证书公钥进行解密,验证服务器数据签名,获取到服务器CA证书公钥。然后Fiddler伪造自己的CA证书,冒充服务器证书传递给客户端浏览器。

3、与普通过程中客户端的操作相同,客户端根据返回的数据进行证书校验、生成密码Pre_master、用Fiddler伪造的证书公钥加密,并生成HTTPS通信用的对称密钥enc_key。

4、客户端将重要信息传递给服务器,又被Fiddler截获。Fiddler将截获的密文用自己伪造证书的私钥解开,获得并计算得到HTTPS通信用的对称密钥enc_key。Fiddler将对称密钥用服务器证书公钥加密传递给服务器。

5、与普通过程中服务器端的操作相同,服务器用私钥解开后建立信任,然后再发送加密的握手消息给客户端。

6、Fiddler截获服务器发送的密文,用对称密钥解开,再用自己伪造证书的私钥加密传给客户端。

7、客户端拿到加密信息后,用公钥解开,验证HASH。握手过程正式完成,客户端与服务器端就这样建立了“信任”

二、Tunnel to 是什么?

1、解读Tunnel to

在抓包的时候,有时候会遇到很多的Tunnel to,图标是一把锁的形状,使用的方法是CONNECT,如下图:

6e91939ec57c4149bf8573619fa9d17a.png

查阅资料得知:

connect是为了建立http tunnel ,connect是http众多方法中的其中一种,它跟post、get、put、options方法是并列的。但是它的使用场景很特殊。只有在受限制的网络环境中(防火墙、NAT、代理器)并且是https通信时,客户端使用http connect请求代理服务器,代理服务器使用connect方法与目标服务器建立http tunnel,通道建立后,客户端与服务器进行通信,代理服务器就像透明一样,只是接收、转发tcp stream。

2、为什么要建立http tunnel呢?

这是因为网络环境受限,客户端无法直接访问某些网络,所以只能通过代理服务器访问网络,然后,将内容转发给客户端,从宏观上看,客户端与服务器端就像建立了一条隧道一样。但是由于http tunnnel可控性不强,所以服务器通常会限制 “可connect的端口” (一般只开放SSL的443端口)

所以会看到,Tunnel to *****:443

3、出现大量connect连接?

因为fiddler是代理,访问百度网页(使用了https协议),满足了使用connect条件,所以客户端会使用connect方法与目标服务器建立http tunnel,一旦connection建立完成,后续fiddler会转发、接收所有的tcp stream。

f820c9ad2c62410fbef03a4eb302919a.png

所以如上图所示,访问https://www.baidu.com之前出现了tunnel to www.baidu.com:443

当然,并不是所有的受限网络(restricted network),https通信时,都会使用connect建立http tunnel ,如果目标服务器限制connect方法,那么就会使用其它方法来建立通道(post/get);如果服务器不支持http tunnel,那么就需要安装http tunnel server端的程序,客户端不支持http tunnel,那么客户端就需要安装http tunnel client程序;http tunnel程序包含两部分,server端程序和client端程序;

4、如何隐藏

如果你看着tunnel to不习惯的话,可以将其隐藏掉:菜单栏 > Rules > Hide CONNECTs

a5a87c53b1ff491492c97fa199247471.png

总结:在抓取HTTPS的数据包时,Fiddler会话栏显示“Tunnel to….443”的信息,这个是什么原因呢?

1、Connect表示HTTPS的握手(也就是认证信息,只要是HTTPS就要进行认证)

2、我们抓包是为了看HTTP/HTTPS请求和响应的数据内容,而不关心HTTPS的通信是怎么建立连接的,隐藏了,Fiddler就不会捕获大量无用的握手验证请求。

注意事项:Fiddler安装和使用的时候需要关闭杀毒软件!

如果觉得不错,请点赞。谢谢~.~

  • 36
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Fiddler是一款用于抓包和分析网络流量的工具。如果您想要在Fiddler中使用HTTPS协议进行抓包分析,则需要对Fiddler进行一些配置,使其能够与目标网站建立加密连接。 其中一个常见的问题是Fiddler无法通过隧道连接到443端口。这通常是由于系统代理设置的问题导致的。要解决这个问题,您可以尝试以下方法: 1. 在Fiddler中打开“Tools”菜单,选择“Options”,然后选择“Connections”选项卡。在该选项卡中,取消选中“Act as system proxy on startup”复选框。 2. 禁用或修改系统代理设置。在Windows操作系统中,您可以在“Internet选项”中找到代理设置,然后将其禁用或将代理地址和端口修改为与Fiddler相同的地址和端口。 3. 如果您使用的是HTTPS代理,请确保您已经安装了Fiddler的根证书。在Fiddler中,可以通过打开“Tools”菜单,选择“Options”,然后选择“HTTPS”选项卡来找到根证书的安装方法。 希望这些方法可以帮助您解决Fiddler隧道连接443端口的问题。 ### 回答2: 文本中提到“fiddler tunnel to 443 问题”,该问题是指在使用Fiddler抓包时,需要将端口号修改为443才能正常捕获HTTPS请求的问题。这个问题是由于HTTPS请求使用加密传输,而Fiddler默认只能捕获HTTP请求,因此需要通过修改端口号的方式来实现HTTPS请求的抓包。 首先,需要在Fiddler的“Tools”菜单下选择“Fiddler Options”,进入设置页面。在“HTTPS”选项卡下,勾选“Decrypt HTTPS traffic”选项,并点击“Export Root Certificate to Desktop”按钮,将证书导出到桌面以便之后的安装。 接着,需要将证书安装到本地信任证书库中。在Windows系统中,可以通过双击证书文件并按照提示操作来实现。安装成功后,需要重启Fiddler,并在“Tools”菜单下选择“Options”菜单中的“HTTPS”选项卡,勾选“Capture HTTPS CONNECTs”选项。 最后,需要在Fiddler的“Rules”菜单下选择“Customize Rules”,并添加以下代码: static function OnBeforeRequest(oSession: Session) { if (oSession.isHTTPS && oSession.uriContains("yourdomain.com")) { oSession["x-overrideHost"] = "yourdomain.com:443"; } } 这段代码的作用是将指定的域名的端口号改为443,以便Fiddler能够正常捕获HTTPS请求。在添加完上述代码后,保存并重启Fiddler即可。 总之,“fiddler tunnel to 443 问题”可以通过上述方法解决,从而实现对HTTPS请求的抓包。同时需要注意的是,由于HTTPS请求使用加密传输,因此在抓包时需要遵循相关法规和道德规范,切勿用于非法用途。 ### 回答3: Fiddler是一款广泛使用的抓包工具,可以用于监视HTTP请求和响应。有时候,我们需要在Fiddler上捕获加密的HTTPS流量,这时就需要使用Fiddlertunneling(隧道)功能。 默认情况下,在Fiddler上不能直接抓取HTTPS流量。Fiddler使用的是自己生成的根证书来代理HTTPS流量,但大多数浏览器都不信任这个根证书,因此浏览器会提示安全警告。为了解决这个问题,Fiddler提供了一个tunneling(隧道)功能,用于将HTTPS流量通过HTTPS隧道转发到Fiddler中,从而避免了浏览器检测证书的问题。 在Fiddler中,打开Tools->Options,选择HTTPS选项卡,勾选"Decrypt HTTPS traffic"和"Ignore server certificate errors"选项,然后单击"Actions"按钮,选择"Export root certificate to desktop",将证书保存到桌面。接下来,需要将该根证书导入到操作系统的受信任根证书颁发机构中,以便浏览器可以信任它。然后,重启Fiddler,选择"Rules"选项卡,打开Customize rules文件,在OnBeforeRequest函数中添加以下代码: if (oSession.HTTPMethodIs("CONNECT") && oSession.HostnameIs("localhost:443")) { oSession["x-replywithtunnel"] = "FakeTunnel"; return; } 保存并重新加载Customize rules文件,Fiddler就可以开始抓取HTTPS流量了。 总之,使用Fiddlertunneling(隧道)功能,可以轻松捕获HTTPS流量,从而帮助我们分析和调试网站的安全性及性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值