天天看点

Fiddler 4工具直接提供的12个重要功能讲解

文章目录

        • 一.捕获火狐会话
        • 二.Fiddler捕获 HTTPS 协议的会话
        • 三.Fiddler 简单的模拟性能测试的并发测试
        • 四.捕获特定浏览器的请求
        • 五.Fiddler 模拟请求发送并查看响应
        • 六.AutoResponder 利用本机模拟远端服务器进行响应
        • 七.Fiddler 远程抓包功能
        • 八.QuickExec 命令行控制台
        • 九.Fiddler 中的断点设置
        • 十.Fiddler 的编码和解码功能
        • 十一.Fiddler 工具的属性偏好设置
        • 十二.Fiddler Script

Fiddler 其他知识点:

Fiddler 依据界面讲解

一.捕获火狐会话

Fiddler 默认 IE 的代理为 127.0.0.1:8888 其他浏览器需要手动设置,将火狐的代理改为 127.0.0.1:8888 即可,火狐代理设置为 Tools → Options → Advanced tab → network tab → setting

二.Fiddler捕获 HTTPS 协议的会话

默认情况下 Fiddler 不会捕获 HTTPS 的会话,需要打开 Fiddler 的 Tools → Options… → HTTPS,勾选上 Capture HTTPS CONNECTs 和 Decrypt HTTPS traffic,再点击 OK 即可

三.Fiddler 简单的模拟性能测试的并发测试

首先鼠标选中需要的 HTTP 请求,然后把键盘设为大写模式,按下 Shift + R,会弹出模拟并发的次数

Fiddler 4工具直接提供的12个重要功能讲解

然后输入你需要并发的次数,然后发送请求即可。

这个也就是右键 session 栏中选择 Replay → Ressue Requests,但似乎不能选择次数,工具栏中 Replay 按钮同样也是这个功能,除此之外,右键 session 栏中的 Replay 中从上到下依次是无条件重发选中的请求,重发请求并编辑(这会打开一个加了断点的请求可进行请求和响应数据的修改),重发并验证(重发并验证请求结果,会自动加颜色标识),重发序列(打开数量设置界面,标识需要重发多少次请求),重发并打开 composer 界面(可编辑或发送),在 IE 上直接发起这个请求。

四.捕获特定浏览器的请求

通过将 Fiddler 状态栏中的 Any Process 按钮进行拖动,拖动到指定浏览器的标题栏上,可以实现 Fiddler 只捕获通过该浏览器的请求

Fiddler 4工具直接提供的12个重要功能讲解

五.Fiddler 模拟请求发送并查看响应

在 Request 栏中的 Composer 中,在 Parsed 中机型请求方式,请求 url,请求协议,请求头,请求体的编辑,然后点击 Excute 进行发送请求,而响应结果可以在左侧 sessions 栏中出现,所以说在执行 Excute 之前最好清空一下 sessions 框中的 sessions,Composer 中数据具体该怎么写,可以将 sessions 框中的某一 session 拖动到 Composer 中来模仿着写

Fiddler 4工具直接提供的12个重要功能讲解

六.AutoResponder 利用本机模拟远端服务器进行响应

这里是使用 Fiddler 的 request 栏中的 AutoResponder 自动响应功能,通过选中 Enable Rules,通过选中的session,来点击 Add rules 按钮来添加规则,Enable Rules 右边有两个选项依次是跳过不匹配的请求和启用延时(ms),Fiddler 支持 url 的正则匹配,下方有个蓝色的 Test…,点击这个可以用来测试 url 是否匹配。这个功能非常牛 X,因为我们可以使用 Fiddler 截取某些软件激活的信息(如果它们使用 HTTP 协议),然后利用这个能模拟返回服务器的信息,这样一来我们就可以伪造一个假的服务器了

七.Fiddler 远程抓包功能

大家知道的基本都是 Fiddler 捕获本机数据包,实际上 Fiddler 也可以远程抓包,假如有 A和 B 两台设备,现在想用 A 设备中的 Fiddler 捕获 B 设备中的 HTTP 数据包,先查看 A 设备中的 IP 和 Fiddler 设置的端口号并保留下来,打开 A 的 Fiddler 通过 Tools → Options… → Connections 勾选 Allow remote computer to connect,在 B 设备中打开浏览器修改代理,HTTP 代理为 A 机器上的 IP,端口为 A 机器上 Fiddler 的端口, 这样 A 设备中的 Fiddler 就可以成功看到 B 设备的数据包了,其实一旦在 B 设备指定了代理机,无论 Fiddler 是打开还是关闭或者抓远端包的功能是打开还是关闭,数据都会传到 A 机器

Fiddler 4工具直接提供的12个重要功能讲解

原理还是代理服务器,远端服务器与 B 机器做数据传递,A 机器充当了代理机的缘故,能成功抓取流向 B 机器的数据包,请参见博文 HTTP 代理知识

八.QuickExec 命令行控制台

Fiddler 的命令行操作可参见 Fiddler 命令操作官方帮助页

  • 快捷键
    • Alt + Q:快速将焦点定位到 QuickExec 命令行
    • Ctrl + I:当选择了一个 session 时候,可以快速将此 session 的 url 插入到当前命令行光标处
  • 命令

    多数命令是存储在本地的 CustomRules.js 文件中,新版本的 Fiddler 会增加新的命令,旧版的 Fiddler 想使用新命令,就可以更新 CustomRules.js 文件中的 ExecAction 即可

    除了输入默认命令,也可以自定义命令,你可以通过编辑 FiddlerScript 来增加新命令,找到 OnExecAction 函数增加新命令。这里仅介绍默认命令。

    • ?sometext:此命令可以高亮所有 url 匹配问号后的字符的全部 session
    • >数字

      :选择响应尺寸大于指定数字大小的全部 session,比如说 >40000,这是响应大于 40kb的请求,比如说 <5k,这是响应小于 5kb 的请求,
    • =状态码:选择响应 HTTP 状态码等于指定值的全部 session,如 =200
    • =请求方法:选择请求中的指定的请求方法的所有session
    • @host名:选择包含指定 host 的全部 session,如 @csdn
    • bold url 中字符:可以来加粗显示包含 url 指定字符的 session
    • bpafter url 中字符:可以来中断 url 中包含指定字符的 session
    • bps:清空所有设置断点的 session
    • bps 状态码:中断所有响应为指定状态码的 session
    • bpv:清空所有设置断点的 session
    • bpm:同上
    • bpv 请求方法:中断所有为指定请求方法的 session
    • bpm 请求方法:同上
    • bpu:清空所有设置断点的 session
    • bpu url 中字符:众多所有 url 中包含指定字符的 session
    • clear:清除所有 session
    • cls:同上
    • dump:将所有 session 打包到 C 盘的一个 zip 压缩包中
    • go:继续运行所有中断的 session
    • g:同上
    • help:浏览器打开 Fiddler 的命令行控制台帮助页
    • hide:将 Fiddler 隐藏到任务栏图标中
    • urlreplace 替换前的字串 替换后的字串:将 url 中字符串替换成特定串
    • urlreplace:清空之前的替换设置
    • start:将 Fiddler 设为系统代理
    • stop:将 Fiddler 从系统代理中注销
    • show:将 Fiddler 从任务图标回复为图形界面
    • select 类型:选择响应类型为指定类型的 session,比如 select image
    • select 指定内容:选择 header 或者 sessionFlag 中包含指定内容的 session
    • allbut 响应类型:选择响应类型不是这个指定的响应类型的所有 session,比如allbut xml 表示选择除了 xml 响应之外的所有
    • keeponly 响应类型:同上
    • quit:退出 Fiddler
    • !dns 主机名:对目标主机进行 dns 查找,并在 LOG 选项卡上显示结果,如 !dns www.example.com 可以将这个域名的 IP 解析并输出出来
    • !listen 端口号:可以在另一个端口上设置一个额外的监听器,可选由 HTTPS 证书保护

九.Fiddler 中的断点设置

在 Fiddler 菜单栏的 Rules → Automatic Breakpoints 中可以选择断点设置方式,默认不设断点,可以选择请求发送前设断点或者请求发送后设断点,还可以勾选是否忽略返回图片的请求,默认是勾选的。

  • Before Requests:在请求前设断点。在请求前就设置断点,这样点进 session 可以看到是没有响应的,因为请求还未发出,自然浏览器页面是空白的,不会收到响应结果,除了通过点击的方式设置断点和恢复断点,还可以通过命令行的方式,通过bpu 服务器地址,这样的方式来对特定的请求设置断点,要清除原来的断点,可以在命令行输入bpu来清除之前所有断点。点击工具栏中的 Go 按钮可以让所有断点恢复运行
  • After Responses:在响应之后设断点。这个断点是设置在数据响应已经发到本机,但是未到浏览器界面上显示的时候,所以浏览器的页面应该也是空白,可以更改返回数据信息,之后点击继续运行,可以看到浏览器页面出现了自己在响应信息中更改的字段,这里同样也可以通过命令行bpafter 服务器地址,这样的方式来设置指定服务器的断点,通过bpafter来清除之前断点。点击工具栏中的 Go 按钮可以让所有的断点恢复运行

十.Fiddler 的编码和解码功能

  • Decode解码功能:
    • 在 respond 栏中解码:通过点击此处,可以将响应体中的乱码进行解码
      Fiddler 4工具直接提供的12个重要功能讲解
    • 工具栏中的 Decode 按钮:默认是不选中此项的,一旦选中此项,之后通过fiddler截获显示的请求将全部都是已经解码过的
    • 菜单栏中 Rules → Remove All Encodings 按钮:与上面一样
    • 工具栏中的 TextWizard 工具:点击打开此工具,这里可以拷贝字串进行编解码,功能比较强大
    • Session 栏右键 Decode Selected Sessions:此项可以解码所选中的session,与在 respond 栏中解码一样,不过这个可以批量
  • Encode编码功能:
    • 菜单栏中 Rules → Apply GZIP Encoding 按钮:默认是不勾选的,若选择了此项,则只要请求中包含了 gzip 标识的 Accept-Encoding 请求头,就会对除了图片以外的所有相应使用 GZIP HTTP 压缩
    • 工具栏中的 TextWizard 工具:点击打开此工具,这里可以拷贝字串进行编解码,功能比较强大
    • 有响应体的 Respond 栏中的分块传输编码和 HTTP 压缩技术:在 Respond 栏中,有勾选框为 Chunked Transfer-Encoding,这个是分块传输编码。下面的 HTTP Compress 可以勾选不同的压缩技术

十一.Fiddler 工具的属性偏好设置

十二.Fiddler Script

  • Fiddler Script 设置断点:

    Fiddler Script的本质其实是用JScript.NET语言写的一个脚本文件CustomRules.js,语法类似于C#, 通过修改CustomRules.js可以很容易的修改http的请求和应答,不用中断程序,还可以针对不同的URI做特殊的处理,除此之外还可以根据开发者的需要去定制菜单。脚本文件CustomRules.js位于C:\Documents and Settings[your user]\My Documents\Fiddler2\Scripts\CustomRules.js 下,你也可以在Fiddler 中打开CustomRules.js 文件, 启动Fiddler, 点击菜单Rules->Customize Rules。Fiddler Script 的官方帮助文档的地址是:Fiddler Script 官方帮助页。可以直接编辑CustomRules.js文件,也可以下载 Fiddler Script Editor来编辑,下载的地址是 Fiddler Script Editor 下载。Fiddler Script Editor 提供了语法高亮,以及智能提示的功能,方便编辑。在 request 栏中点击 FiddlerScript 也可以打开。这里可以修改样式,限速,断点,这里属于 Fiddler 的高级用法,具体添加以及修改方法可参见网络,这里不做过多描述

    Fiddler 4工具直接提供的12个重要功能讲解

继续阅读