fiddler抓包经验

最近一直在学习fiddler,把学习过程中遇到的问题记录一下,可能也有些同学在学习的过程中会遇到同样的问题

问题1:fiddler怎么抓取不到自己的请求?

首次用fiddler,自己在浏览器中发送了一个请求,却发现fiddler中并没有记录这个请求,反而下面多了很多不相干的请求,觉得很是疑惑后来通过搜索资料才发现fiddler默认抓取http请求,对于pc上的https请求需要自己设置

  1. 打开菜单栏:Tools>Options>HTTPS
  2. 勾选Decrypt HTTPS traffic,里面的两个子菜单也一起勾选了

fiddler抓包经验

如果是第一次安装fiddler(系统环境比较纯净也就是说从来没安装过fiddler)、也就是说当你打开https的开关按钮的时候、 点击勾选的那个时候 、如果会弹出一个安装证书的操作之后你点击yes那么恭喜你你的系统比较纯净 、所以这么设置之后你可以直接抓取https请求不会提示你网络连接不安全之后就可以进行抓包操作了。

问题2:为什么打开fiddler,有那么多tunnel to?

   fiddler抓包经验

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

fiddler抓包经验

在某主的CSDN博客中,查到的资料如下:

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

为什么要建立http tunnel呢?

这是因为,网络环境受限,客户端无法直接访问某些网络,所以只能通过代理服务器访问网络,然后,将内容转发给客户端,从宏观上看,客户端与服务器端就像建立了一条隧道一样。

但是由于http tunnnel可控性不强,所以,服务器通常会限制”可connect的端口”(一般只开放SSL的443端口)

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

fiddler抓包经验

那么为什么fiddler抓包时,出现大量connect连接?

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

所以如上图所示,访问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端程序;

如果你看着tunnel to不习惯的话,可以将其隐藏掉,Rules->Hide Connects

fiddler抓包经验

问题3:为什么请求信息展示乱码以及如何解决?

在使用fidder的过程中发现post请求后的json是中文乱码,上网寻求了一些解决方案,在此总结一下:

1.点击Response Raw上方的"Response is encoded any may need to be decoded before inspection. click here to transform"按钮,该响应的乱码文字立刻正常显示中文。

2.选中工具栏中的"Decode"。 这样会自动解压缩。Decode按钮为选中状态后,再次发送请求,响应都自动解压,显示中文,若不想自动解压,可取消选中Decode按钮。

个人试过1、2两种方式,不知道为什么按照操作提示还是乱码

还有另外一种乱码问题是通过修改注册表来解决的:

1.windows按钮+R

2.输入regedit +回车+是

3.进入目录HKEY_CURRENT_USER\Software\Microsoft\Fiddler2

4.右键新建,选字符串值,命名为 HeaderEncoding 然后值输入 GBK

5.重启fidder即可生效

此文参考博客:

https://blog.csdn.net/Tester_xjp/article/details/80087014

https://blog.csdn.net/weixin_43664254/article/details/94601280

https://blog.csdn.net/qq_41595021/article/details/99691953

其他优质文章:

https://blog.csdn.net/yan_startwith2015/article/details/81286532

https://www.cnblogs.com/llxx07/p/8616042.html

https://blog.csdn.net/yue549433330/article/details/82745760

看了以上内容,日常抓包应该没问题,其他再遇到什么问题就网上寻找答案吧