Fiddler抓包工具

发布时间 2023-06-25 15:54:44作者: 神里的雾切

一、Fiddler 简介  

  Fiddler 是位于客户端和服务器端的 HTTP 代理,目前最常用的 http 抓包工具之一,功能非常强大,是 Web 调试的利器  

  主要功能:

  • 监控浏览器所有的 HTTP/HTTPS 流量

  • 查看、分析请求内容细节

  • 伪造客户端请求和服务器响应

  • 测试网站的性能解密 HTTPS 的 Web 会话

  • 全局、局部断点功能

  • 第三方插件
    使用场景:

  • 接口调试、接口测试、线上环境调试、Web 性能分析

  • 判断前后端 bug、开发环境 hosts 配置、mock、弱网断网测试

二、B/S架构  

  编写程序部署到 Web 服务器,Web 服务器运行在服务器上,绑定 ip 地址并监听某端口,接收和处理 http 请求,客户端通过 http 协议获取服务器上的网页、文档等

三、HTTP相关知识  

  1、英文全称:Hyper Text Transfer Protocol(超文本传输协议)  

  2、用于从万维网服务器传输超文本到本地浏览器的传送协议

  3、HTTP 协议是基于 TCP 的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,

  最初是用来向客户端传输 HTML 页面的内容。默认端口是 80
  4、http 是基于请求与响应模式的、无状态的、应用层的协议

  完整的 HTTP 协议

  HTTP 请求报文:

  HTTP 请求报文主要由请求行、请求头部、空一行、请求正文(请求体)4 部分组成

如图是 fiddler 某个会话的请求报文

  请求头(Request Header)

  HTTP 响应报文

  HTTP 响应报文主要由状态行、消息报头、空一行、响应正文 4 部分组成

四、Fiddler界面操作

  1、Fiddler概览:

  2、Fiddler界面详解

  3、Session List(会话列表)

  Fiddler 抓取到的每条 http 请求(每一条称为一个 session)
  主要包含了请求的 ID 编号、状态码、协议、主机名、URL、内容类型、body 大小、进程信息、自定义备注等信息

  

  4、Statistics(统计)

  HTTP 请求的性能和其他数据分析,如 DNS 解析的时间,建立 TCP/IP 连接的时间消耗等信息

  5、 Inspectors(检查器)

  Inspectors 意思是检查器;可以多种方式查看请求的请求报文和响应报文相关信息

  6、AutoResponder(自动响应器)

  AutoResponder 可用于拦截某一请求,进行如下操作:

  a、重定向到本地的资源
  b、使用 Fiddler 的内置响应
  c、自定义响应

  7、Filters(过滤器)

  多维度的过滤规则,可根据主机、进程、请求头、响应头、状态码、响应类型和大小、断点进行请求的过滤

五、HTTP或HTTPS抓包操作

 1、HTTPS抓包操作:

  • 点击 Tools > Fiddler Options > HTTPS
  • 勾选 Decrypt HTTPS Traffic

证书安装:



2、捕获 Firefox HTTPS 的包

  • Tools > Fiddler Options > HTTPS
  • Actions > Export Root Certificate toDesktop 将 Fiddler 根证书导出到桌面

 Firefox 导入根证书

  • 打开 Firefox 浏览器
  • 击打开菜单 > 选项 > 高级 > 证书 > 查看证书
  • 点击导入 > 选择桌面的 Fiddler 根证书 > 打开

3、抓不到 HTTPS 解决方案 1

  • 关闭 Fiddler 和 Firefox
  • 运行命令 certmgr.msc,打开系统的证书管理器(Fiddler 的 https 配置选项卡中的 Actions 也可打开)
  • 点击操作 > 查找证书 > 输入 Fiddler 进行查找 > 选中所有查找到的证书 > 删除
  • 重复步骤配置 Firefox 浏览器抓取 HTTPS 包
  • 重新测试,大部分情况可以抓取 HTTPS 包了


4、抓不到 HTTPS 解决方案 2

清除系统安装的 Fiddler 根证书

  • 运行命令 certmgr.msc,打开系统证书管理

  • 点击操作 > 查找证书 > 输入"Fiddler"进行查找 > 选中所有查找到的证书 > 删除
    清除 Firefox 中 Fiddler 根证书

  • 打开 Firefox 浏览器

  • 点击打开菜单 > 选项 > 高级 > 证书 > 查看证书

  • 找到并各项中的 DO_NOT_TRUST_FiddlerRoot 证书
    下载并安装 Fiddler 证书生成器

  • 下载 FiddlerCertMaker.exe ,地址 https://www.telerik.com/fiddler/add-ons ,搜索:CertMaker

  • 直接打开 FiddlerCertMaker.exe (安装过程中如出现错误可忽略)
    重启 fiddler 和 Firefox 浏览器

  • 重新导出导出证书步骤
    六、IOS和Android设备抓包

1、抓 iOS 设备 APP 包-Fiddler 设置

  • 点击 Tools > Fiddler Options > Connections.

  • 勾选 Allow remote computers to connect.

  • 重启 Fiddler

  • 确保防火墙允许 Fiddler 进程可以远程连接

  • iOS 设备连接 WiFi

  • 确保 iOS 设备可以访问到 http://FiddlerMachineIP:8888 ,该地址会返回 Fiddler Echo Service 页面
    2、iOS 设备抓包-iOS 设备设置

  • 点击设置 > Wi-Fi > 打开连接的 Wi-Fi 设置

  • 点击配置代理 > 手动

  • 设置 iOS 代理服务器地址为 Fiddler 所在主机的 IP 地址

  • 设置端口为 Fiddler 监听的端口

  • 点击存储 保存代理设置

  • 打开一个非 HTTPS 的网站,此时 Fiddler 已经可以捕获 HTTP 请求了

3、iOS 设备抓包-安装证书解密 HTTPS

  • 在 iOS 设备打开浏览器,访问 http://ipv4:8888/

  • 点击 Fiddler Echo Service 页面底部 FiddlerRoot certificate 下载证书

  • 打开 FiddlerRoot.cer 文件并安装

  • 安装成功后,在通用 > 关于本机 > 证书信任设置中,信任刚安装的 Fiddler 证书

  • Safari 打开 https://www.baidu.com,已经可以抓取 HTTPS 包了
    4、Android 设备抓包

  • 以华为为例,打开设置 > WLAN > 连接上的 WLAN 设置

  • 点击代理 > 手动,设置主机名为 Fiddler 所在主机的 IP,端口为 Fiddler 监听端口

  • 打开 Android 设备浏览器,访问 http://ipv4:8888/

  • 点击页面底部 FiddlerRoot certificate 下载证书

  • 打开设置 > 更多设置 > 系统安全 > 加密与凭据 > 从存储设备安装

  • 选择下载好的 FiddlerRoot.cer 进行安装

  • 浏览器打开 https://www.baidu.com,已经可以抓取 HTTPS 包了
    注意:测试完毕,记得关闭代理,否则手机无法上网