本文根据 全网最全最细Fiddler抓包工具,没有之一【柠檬班】 整理所得
1. Fiddler 介绍
- Fiddler 是位于客户端和服务端之间的 HTTP 代理
- 目前最常用的 HTTP 抓包工具之一
-
功能非常强大,是 Web 调试的利器
- 监控浏览器所有的 HTTP / HTTPS 流量
- 查看、分析请求的内容细节
- 伪造客户端请求和服务器响应
- 测试网站性能
- 解密 HTTPS 的 Web 会话
- 全局、局部断点功能
- 第三方插件
-
使用场景
- 接口调试、接口测试、线上环境调试、Web 性能分析
- 判断前后端 bug、开发环境 hosts 配置、mock 假数据、弱网断网测试
2. 工作原理
3. 安装
略。
3. 界面介绍
3.1 菜单栏
- 设置代理端口:Tools > Options > Connections > 修改 Fiddler listens on port 值即可
- 隐藏建立通道的连接:Rules > Hide CONNECTs(常用)
- 隐藏 304 会话:Rules > Hide 304s(常用)
3.2 工具条
从左到右按顺序
- WinConfig:略
- 气泡(对话框)图标:添加备注,在 File > Save 保存会话给别人看的时候有用
- Replay:重发选中的请求(快捷键 r),同时按住 shift 可以重复发多次
- × 图标:删除会话,快捷键 ctrl + x 删除所有会话
- Go:在会话进入断点时恢复会话
- Stream:流模式,一般不用
- Decode:对所有会话解码
- Keep:保留会话条数,例如 100 条、250 条等等
- 瞄准图标:按住不放,然后将“十字图标”拖动到想要监听的进程,比如拖到 Chrome 浏览器,那么就只会捕捉到 Chrome 的请求
- Find:快捷键 ctrl + f
- Save:保存当前会话为一个 .saz 后缀的文件
- 相机图标:截图
- 时钟图标:计时器,右键取消
- IE 图标:快速打开浏览器
- Clear Cache:清除 IE 浏览器缓存
- TextWizard:打开转码工具
- Tearoff:拆分面板
- 搜索框:进入 https://social.msdn.microsoft...
- 电脑图标:显示本机网络信息
3.3 监控面板(会话列表)
展示了 Fiddler 抓取到的每条 HTTP 请求,每一条称为一个 session,每条 session 都包含了
- #:序号,按照页面加载顺序递增
- Result:状态码
- Protocal:协议,如 HTTP、HTTPS
- Host:域名
- URL:请求地址
- Body:请求大小,单位为 byte
- Caching:缓存相关信息
- Content-Type:MIME 类型
- Process:发出该请求的进程
- Comments:备注
- Custom:用户通过脚本设置的自定义值
3.4 命令行 + 状态栏
3.4.1 命令行
3.4.2 状态栏
从左到右按顺序
- Capturing:正在捕捉请求中,点一下就可以取消捕捉
- 筛选不同进程发出的会话
- 断点,点一下在发起请求之前进入断点,点两下在请求响应响应之后进入断点
- 略
- 附加信息
3.5 辅助标签 + 工具
3.5.1 Statistics(统计)
请求的性能和其他数据分析,如 DNS 解析时间,建立 TCP/IP 连接的时间等
3.5.2 Inspectors(检查器)
可以以不同的格式(Headers、TextView、Raw 等等)查看请求报文和响应报文
3.5.3 AutoResponder(自动相应器)
拦截某一请求,然后进行如下操作
- 使用 Fiddler 内置的响应
- 自定义响应
- 重定向到本地的资源
可以拦截 js 文件制作钓鱼网站或者 mock 假数据
比方说,项目在正式环境出了问题,直接在正式环境修改代码是不合理的,此时就可以用 AutoResponder 将请求拦截,然后重定向到指定的响应内容
Fiddler 具体设置如下
- 勾选 Enable rules
- 勾选 Unmatched requests passthrough
- 点击 Add Rule
- 在 Rule Editor 输入要拦截的地址
- 在 Rule Editor 选择要采取的响应
- 点击 Save
3.5.4 Composer(创作者)
简单的接口测试工具
3.5.5 Filter(过滤器)
多维度的过滤规则,包括
- Hosts过滤
zone filter 分为了 intranet 局域网(内网)和internet 互联网(外网)
Flag the following Hosts 标示(重要处)一下的域名
- Client Process过滤(客户端进程)
- Request Headers 过滤
- Breakpoints(打断点)
- Response Status Code 过滤
- Response Type and Size 过滤
- Response Headers 过滤
Fiddler 具体设置
- 勾选 Use Filters(记得取消勾选)
- 勾选好过滤条件
- 点击右上角(Use Filters 右边)的 Actions > Run filterset now
4. 断点
- 可以在请求前篡改请求数据
- 可以在响应后篡改响应数据
- 模拟网络超时的情况
Fiddler 具体设置
- 全局断点:Rules > Automatic Breakpoints > Before Requests 或者 After Responses(也可以直接在最下面的状态栏设置,3.4.2 有介绍)
-
局部断点
- 请求前断点:在下面的命令行处输入 bpu login,即可将请求中带有 login 的请求中断,再次输入 bpu 取消断点
- 响应后断点:在下面的命令行处输入 bpafter login,即可将请求中带有 login 的请求中断,再次输入 bpafter 取消断点
5. 弱网测试
Fiddler 具体设置:Rules > Performance > Simulate Modem Speeds
还可以自定义限速的状态,具体操作:
- Rules > Customize Rules
- 在代码中搜索“if (m_SimulateModem) {”,找到后修改里面的数值即可(记得要勾选 Rules > Performance > Simulate Modem Speeds)
5. HTTPS 抓包
Fiddler 具体操作:Tools > Options > HTTPS > 勾选 Decrypt HTTPS traffic
如果还是不能抓取 HTTPS 请求,执行下面操作:
- Tools > Options > HTTPS > Actions > 点击 Reset All Certificates,然后一直点确定来安装 fiddler 证书
- 然后 Tools > Options > HTTPS > Actions > 点击 Open Windows Certificate Manager 打开管理计算机证书界面
- 在 Windows 的管理计算机证书界面,点击操作 > 查找证书 > 搜索 fiddler,能查找到相应的证书即设置成功
5.1 Firefox 设置(IE 和 Chrome 执行上述操作即可)
- Firefox 右上角 > 选项(或者地址栏输入 about:preferences) > 找到网络设置(不同版本可能的位置不一样),选中“使用系统代理设置”
- Fiddler > Tools > Options > HTTPS > Actions > 点击 Export Root Certificate to Desktop 导出证书到桌面
- Firefox 右上角 > 选项 > 找到证书模块,点击查看证书 > 选择证书机构 > 点击导入,选择第 2 步的证书,然后将提示框中的选项都勾中,点击确定,重启 Firefox 即可
6. 抓 iOS 设备中的 App 的包
- Fiddler > Tools > Options > Connections > 勾选 Allow remote computers to connect
- Fiddler > Tools > Options > HTTPS > 勾选 Capture HTTPS CONNECTS 和勾选 Decrypt HTTPS traffic
- 将 iOS 设备和电脑连接 WiFi 并设置代理,服务器填写电脑 IP,端口填写 Fiddler 设置的端口(Tools > Options > Connections > Fiddler listens on port)
- iOS 设备使用浏览器打开 192.168.1.103:8888(电脑 IP 和 Fiddler 设置的端口),然后点击 FiddlerRoot certificate 进行安装操作
- 安装成功后,iOS 设备设置 > 通用 > 关于本机 -> 证书信任设置中信任刚安装的 Fiddler 证书即可
- 记得关闭代理
7. 抓 Android 设备中的 App 的包
- 同 iOS 设备
- 同 iOS 设备
- 同 iOS 设备
- 同 iOS 设备
- 安装后,在(华为手机,其他安卓机类似)设置 > 安全 > 受信任的凭据 > 选择用户,查看是否有 Fiddler 的证书,如果有即设置成功了。如果没有,则在设置 > 安全 > 从 sd 卡安装 > 安装刚刚下载的证书即可
- 记得关闭代理
8. 其他问题
- 卸载 Fiddler 之后浏览器上不了网
Windows 系统,打开更改代理设置,关掉代理即可
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。