Fiddler是一个用于HTTP调试的代理服务器应用程序,最初由微软Internet Explorer开发团队的前程序经理Eric Lawrence编写。

Fiddler能捕获HTTP和HTTPS流量,并将其记录下来供用户查看。你可以网络传输发送与接受数据包进行截获、重发、编辑、转存等操作,它通过使用自签名证书实现中间人攻击来进行日志记录。

如果需要更底层的数据包分析器,推荐使用Wireshark,可以抓去到 TCP 包

Fiddler 是一个流行的网络抓包和调试工具,它通过充当中间人代理(Man-in-the-Middle, MITM)的角色来捕获和分析网络流量。以下是 Fiddler 抓包的基本逻辑和 HTTPS 解密的过程:

Fiddler 抓包逻辑

  1. 代理设置: Fiddler 配置为本地计算机上的代理服务器。当你的浏览器或其他客户端应用程序设置为使用 Fiddler 作为代理时,所有的 HTTP(S) 请求都会通过 Fiddler。
  2. 捕获流量: 当客户端发起请求时,请求首先到达 Fiddler。Fiddler 会捕获这些请求,并显示在主界面上,允许用户查看详细的请求和响应信息。
  3. 会话记录: Fiddler 记录每个 HTTP(S) 会话的所有数据包,包括请求头、响应头、请求体和响应体。
  4. 过滤和分析: 用户可以使用 Fiddler 提供的过滤功能来查看特定类型的请求,例如只显示特定域名或特定 HTTP 方法的请求。Fiddler 还允许用户设置断点,以便在请求或响应的特定点暂停会话,进行更深入的分析。

HTTPS 解密过程

  1. 证书生成: Fiddler 包含一个证书生成器,用于创建一个自签名的根证书(FiddlerRoot 证书)。用户需要将这个证书安装到操作系统和浏览器的信任存储中,以便浏览器信任 Fiddler 作为中间人代理。
  2. 中间人代理: 当启用 HTTPS 流量捕获时,Fiddler 会充当中间人代理。对于每个 HTTPS 请求,Fiddler 会首先与目标服务器建立一个安全的连接,并获取服务器的 SSL 证书。
  3. 解密流量: Fiddler 使用自己的私钥来解密从服务器接收的加密数据。由于 Fiddler 拥有用于解密的私钥,它可以查看和修改加密的 HTTPS 流量。
  4. 重新加密: 一旦 Fiddler 解密了数据,它会使用目标服务器的公钥重新加密数据,并将加密后的响应发送回客户端。
  5. 客户端处理: 客户端接收到来自 Fiddler 的加密响应,使用服务器的公钥解密数据,就像它是直接从服务器接收的一样。

通过这个过程,Fiddler 能够解密、查看和修改 HTTPS 流量,这对于调试和分析 HTTPS 应用程序非常有用。然而,这种方法也意味着 Fiddler 有能力查看所有通过它的 HTTPS 流量,因此在使用 Fiddler 时,应确保你有权访问和分析这些数据,并且遵守所有相关的隐私和法律规定。

使用场景:

  1. 接口测试
  2. 接口调试
  3. 线上环境调试
  4. web项目性能分析
  5. 前后端bug监测
  6. 弱网断网监测
  7. hosts配置监测
  8. mock模拟测试

下载安装 Fiddler

官方下载链接(免费试用期 10 天)

https://www.telerik.com/download/fiddler-everywhere

当然,也有 chrome 插件,可以去应用商店下载

https://chromewebstore.google.com/detail/fiddler-jam/fnkjlegmkbicdodlheligomlfbdblpfj?hl=zh-CN&utm_source=ext_sidebar

插件版本操作起来比较简单,点击 Start capture 即可,而且还有录屏功能

使用步骤,获取 HTTP/HTTPS 请求

下载好客户端软件后,登录下账户

详细介绍下sessions 这里的几个模块功能

Filters

由于监听的请求肯定很多,可以配置过滤规则快速找到自己想要的 HTTP 请求

System Proxy

打开代理,HTTP 请求就可以被 Fiddler 监听并获取到,不用的时候记得关掉

配置 HTTPS 证书

Browser

此选项将启动一个新的、干净的、独立的基于 Chromium 的实例(默认为 Chrome 或 Edge),并通过 Fiddler 路由其流量。

Terminal

此选项将启动一个新的、干净的终端实例,并仅通过 Fiddler 路由来自该实例的流量。 目前它支持从 cURL、Node.js 和 Python 捕获流量。

Remove All

如果屏幕上请求太多,不需要了,可以点击 Remove All 清空

修改请求数据并重放

Fiddler 弱网测试

Fiddler 脚本限速

手机端抓包