Loading

Fiddler使用

Fiddler是位于客户端和服务端之间的HTTP代理,也是目前最常用的用抓包工具之一。

官网:https://www.telerik.com/fiddler

它能够:

  • 监控浏览器所有的HTTP/HTTPS流量
  • 查看/分析请求内容细节
  • 测试网站的性能
  • 解密HTTPS的web会话
  • 伪造客户端请求和服务器响应
  • 全局/局部断点功能
  • 第三方插件

使用场景:

  • 接口测试、线上环境调试、web性能分析
  • 判断前后端bug、开发环境hosts配置
  • mock、弱网断网测试

fiddler工作(抓包)原理

敲黑板!划重点!!

为了更好的使用fiddler(当然也包括其他抓包工具),请关闭windows防火墙,360全家桶,腾讯管家等软件。

安装及配置

Fiddler for mac

其实,mac系统中,用Charles更好,此处推荐参考:

https://www.cnblogs.com/guobaoyuan/p/13931815.html

Fiddler for windows

环境:win10 + 火狐浏览器

安装

下载

点击https://www.telerik.com/download/fiddler链接下载。

当点击下载后,会进入下载页面自动下载,如果自动下载失败,点击如下图的中的链接。

安装

  • 双击本地的可执行文件(如果遇到用户账户控制,点击即可),选择I Agree的。

  • 选择安装位置并点击Install后, 会进入安装步骤(遇到弹窗或者浏览器弹窗,叉掉即可)

  • 然后点击Close完成安装。

  • 需要注意的是,fiddler在安装成功后并不会自动的在桌面添加快捷方式,但你可以进入安装目录将可执行文件发送到桌面快捷方式/固定到任务栏/添加到开始菜单都随你。

  • 当你启动fiddler之后,可能会提示如下图的warning,翻译成中文就是: Windows 使用了隔离技术, 阻止被 只有调用本地代理的传统软件和Edge浏览器 抓包。 请使用:工具条里面的WinConfig 去允许抓包。看不懂没关系,我们点击No即可。

  • (如果是第一次打开)是否选择发送匿名的使用和配置信息,使fiddler更完善,根据你的选择了。

Fiddler代理配置

安装成功后,我们打开fiddler配置一下代理设置,这也是一个最常用的配置操作。

  • 菜单栏选择Tools下的Options

  • 选择Connections,fiddler监听的端口默认是8888,如果该端口与你其他应用的端口冲突,你也可以自定义1024~65536范围内的任意端口,然后勾选作为系统代理。

完事!

火狐浏览器代理设置

这里以火狐浏览器为例来设置代理。

  • 火狐浏览器菜单栏右上角点击设置,然后点击选项

  • 下拉选择在网络设置中选择设置

  • 如下图,选择手动代理设置。端口保持跟fiddler的代理端口保持一致,完事点击确定即可。

此时火狐浏览器发送的请求自动走fiddler的代理。

测试

当配置完毕fiddler和浏览器的代理后,在浏览器地址栏访问http://www.neeo.cc:6001/

此时,我们在fiddler中已经能发现成功的监听到了相关请求了。

快速上手

fiddler面板

如下图。

一般的,我们可以将fiddler的面板分为5部分:

  • 菜单栏:关于fiddler的设置相关。

    • Rules关于规则的设置,比如隐藏建立通道的连接,隐藏304的连接,隐藏关于图片的连接。
  • 工具栏:关于请求的常用的工具,从左到右依次是:

    • WinConfig是关于windows的配置,用的较少,这里可以忽略掉。
    • Set Comments会话图标,当你选中一个连接,点击该按钮可以设置选中连接的备注信息。当你在导出会话时,可以看到这个备注信息,可以提醒别的别人关于这个连接的备注。
    • Replay重放请求,当你选中一个链接,点击Replay按钮,fiddler可以重新向该连接发送请求。
    • Remove也就是那个×按钮,清除,清除所有连接,清除所有图片连接,清除非200请求等等。
    • Go用于断点模式。
    • Stream流模式(可选模式),fiddler默认是缓冲模式,也就是服务器将所有的结果返回给fiddler,fiddler再一次性将结果展示,如无特殊情况不选择使用流模式。
    • Decode对请求做解码。
    • Keep保持会话的数量。
    • Any Process选择监听的程序,点击该按钮左边的加号,拖到想要监听的应用上去,比如拖到火狐浏览器上去,此时,fiddler只会监听火狐浏览器的请求。
    • Find查找和过滤请求。
    • Save保存.saz结尾的会话到本地。
    • 截图,截取当前桌面,可以保存到本地。
    • 计时器,呃,就是个计时器,我们看下一个吧!
    • Browse,当你选中一个请求后,可以点击下拉选择打开到指定浏览器,算是快捷方式吧。
    • Clear Cache清除IE浏览器缓存。
    • TextWizard编码解码工具。比如将剪贴板的内容编码为base64格式,也可以提供加密、url编码等等功能。
    • Tearoff将辅助工具单独分离为小窗。
    • MSDN Search微软开发者网络,参见维基百科
    • Online关于本机的相关信息,比如网卡信息,IP等。
  • 监控面板(会话列表):fiddler监听的每条http请求(每一条称为一个session),主要包含了:

    • #请求的顺序,从1开始,按照页面加载请求的顺序递增。
    • Result响应状态码。
    • Protocol请求使用的协议,如HTTP/HTTPS/FTP等。
    • Host请求地址的域名(主机名)。
    • URL请求服务器的路径和文件名,如果是get请求,也包括参数。
    • Body响应体大小,单位是bytes
    • Caching缓存。
    • Content-Type响应内容的Content-Type
    • Process请求所在系统的应用进程/进程ID。
    • Comments用户通过脚本或者右键添加的备注信息。
    • Custom用户可以通过脚本设置的自定义值。

    除了这些默认的字段,也可以手动添加一些自定义的,后面会讲到。

  • 命令行(QuickEexec):提供了很多快捷命令方式,比如过滤(标记)出响应体大于指定字节的请求,就可以在命令行中输入>100然后回车,这是过滤响应体大于100字节的请求。更多参见官网

我们无需记住所有的选项,只需要记得一些常用的用法即可。

会话列表添加字段

在会话列表中,可以自定义的添加一些字段。

在会话列表的title,鼠标右键,选择Customize columns

然后选择合适想要添加的字段。

PS:这个用处不大。

那我们如何想要在这个会话列表中展示域名对应的IP该如何做呢?

  • 菜单栏选择Rules中的Customize Rules

  • 再打开的编辑器中:
    • 第一步,Ctrl + F搜索static function Main()
    • 第二步,如下图,将FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");填写进去,然后Ctrl + S保存即可。
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
// 注意, ServerIP 是在会话列表中显示的字段名,可以自定义

  • 现在,在会话列表中就可以看到新增的一个字段了。

PS:拖动字段名字可以移动位置。

see also:https://blog.csdn.net/mlgglm/article/details/42678205

statistics选项卡:

  • request count:请求数,表示该session总共发起来多少个请求
  • Bytes sent:发送请求的字节数,包括请求头和请求体
  • Bytes received:接收的字节数,包括响应头和响应体
  • ClientConnected:客户端连接的时间
  • ClientBeginRequest:客户端开始发送请求的时间
  • GotRequestHeaders:获取请求头文件的时间
  • ClientDoneRequest:客户端完成请求的时间
  • Determine Gateway:确定网关使用的时间
  • DNS Lookup:查找DNS使用的时间
  • TCP/IP Connect:tcp/ip连接使用的时间
  • HTTPS Handshake:HTTP握手使用的时间
  • ServerConnected:服务连接发生的时间

posted @ 2020-12-01 22:03  Meet~  阅读(281)  评论(0编辑  收藏  举报