4. Fiddler实战:安装配置与核心功能

说实话,Fiddler 是我入行以来用得最顺手的抓包工具之一。它不像 Charles 那样收费,也不像 Wireshark 那样复杂。说白了,它就是给 HTTP/HTTPS 流量装了个「监控摄像头」。

这一章,我会带你从零开始,把 Fiddler 装好、配好、用起来。嗯,尤其是 HTTPS 抓包和断点调试,这两个是面试高频考点,也是日常排查问题的利器。

4.1 Fiddler 安装与基础配置

先说说安装。Fiddler 有两个版本:经典版(Fiddler Classic)和 Fiddler Everywhere。我个人习惯用 Classic,免费、轻量、够用。你直接去官网下载就行,安装过程一路 Next,没什么坑。

装完之后,第一件事是确认它是否正常工作。打开 Fiddler,默认它会自动设置系统代理。你打开浏览器访问任何网站,左侧面板应该会刷刷刷地出现请求列表。如果没出现,检查一下右下角的「Capturing」按钮是不是亮着的。

小技巧: 如果 Fiddler 启动后浏览器打不开网页,八成是代理端口被占用了。去 Tools → Options → Connections 里把端口改成 8889 或 9999 试试。

4.2 HTTPS 抓包设置

这一步是很多新手卡住的地方。Fiddler 默认只能抓 HTTP 明文流量,HTTPS 是加密的,需要额外配置。

为什么?因为 HTTPS 用了 SSL/TLS 加密。Fiddler 要做的,是充当中间人——它生成一个根证书,你的浏览器信任这个证书,Fiddler 就能解密并查看 HTTPS 内容。

配置步骤很简单:

  1. 点击 Tools → Options → HTTPS
  2. 勾选「Capture HTTPS CONNECTs」
  3. 勾选「Decrypt HTTPS traffic」
  4. 弹出提示时,选择「Yes」安装根证书

装完之后,你可能会发现有些 App 或浏览器报证书错误。别慌,这是因为它们做了证书锁定(Certificate Pinning)。我在项目中遇到过好几次,比如抓某个银行 App 的包,死活抓不到。后来发现是证书锁定在作怪,得用 Fiddler 的脚本或者换工具才行。

注意: 抓包完成后,记得去 Tools → Options → HTTPS 里点「Remove Interception Certificates」,把根证书删掉。否则你的浏览器会一直信任 Fiddler 的证书,存在安全隐患。

4.3 断点调试:修改请求与响应

断点调试是 Fiddler 最强大的功能之一。你可以让请求停在半路,手动修改它,再放行。这在测试边界条件、模拟异常场景时特别好用。

举个例子:你测试一个下单接口,前端限制了金额不能超过 10000。但你想测后端有没有做校验。这时候,断点就派上用场了。

4.3.1 设置请求断点

有两种方式:

  • 全局断点: 按 F11,所有请求都会停在发送前。适合临时调试。
  • 规则断点: 在 AutoResponder 或 QuickExec 命令行里输入 bpu /api/order,只有匹配的请求才会被拦截。

我个人更推荐用规则断点。全局断点太粗暴了,你想想看,抓个包还得一个个点「放行」,效率太低了。

4.3.2 修改请求内容

请求被拦截后,右侧面板会显示 Inspectors 标签。你可以在 WebForms 或 Raw 标签里直接修改参数。比如把金额从 1000 改成 99999,然后点击「Run to Completion」放行。

// 修改前的请求
POST /api/order HTTP/1.1
Content-Type: application/json

{"amount": 1000, "userId": 123}

// 修改后的请求
POST /api/order HTTP/1.1
Content-Type: application/json

{"amount": 99999, "userId": 123}

我曾经用这招发现过一个严重的漏洞:后端没做金额校验,直接信任了前端传的值。嗯,那天的 Bug 单写得特别长。

4.3.3 修改响应内容

响应断点的设置方式类似,用 bpafter /api/order 就能拦截响应。修改响应常用于模拟服务端异常,比如把 200 改成 500,或者把返回的 JSON 数据改掉。

举个例子:你测试一个列表页,想看空数据时的 UI 表现。正常接口返回 10 条数据,你用断点把返回的数组改成 [],前端会怎么展示?这就是典型的「异常场景测试」。

核心思路: 断点调试的本质是「中间人攻击」的合法化应用。你修改请求,可以测前端校验;修改响应,可以测后端容错。两者结合,覆盖绝大多数异常场景。

4.4 知识体系总览

下面这张图,是我自己梳理的 Fiddler 核心功能结构。你可以把它当成一个「脑图」来用,方便回顾。

Fiddler 核心功能 安装与配置 系统代理设置 端口配置与冲突解决 HTTPS 抓包 根证书安装与信任 证书锁定处理 断点调试 请求断点(bpu) 响应断点(bpafter) 请求/响应内容修改 三者结合:配置是基础,HTTPS是进阶,断点是核心

4.5 避坑指南与经验总结

最后,分享几个我踩过的坑:

  • 证书装不上? 试试用管理员权限运行 Fiddler。有些系统(比如 Win10 以上)对证书安装权限卡得很严。
  • 抓不到手机包? 检查手机代理 IP 和端口是否写对了。还有,手机和电脑必须在同一个局域网。
  • 断点不生效? 看看是不是开了多个 Fiddler 实例。我曾经同时开了 Classic 和 Everywhere,结果两个都在抢代理,断点完全乱套。

嗯,Fiddler 这东西,用熟了就是一把瑞士军刀。你越用它,越能发现它的妙处。下一节我们会聊更高级的玩法——用 Fiddler 脚本做自动化拦截和修改,敬请期待。

可可精品资料库