本文目录:

  • 3.1、Fiddler 安装
  • 3.2、HTTPS 证书安装
  • 3.3、设置过滤项
  • 4.配置手机抓包

1.Fiddler 简介

Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具,是目前最常用的抓包工具之一。具备的功能:抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等。

2.Fiddler 工作原理

Fiddler 抓包实现原理:客户端服务器进行消息交互时,HTTP 客户端设置 Fiddler 作为代理,把 http 请求发送给 Fiddler,Fiddler 再转发给服务器,同样,服务器返回消息也是先返回给 Fiddler,再由 Fiddler 转发给客户端。就像两个人聊天会通过一个中间人传话,这个中间人就是 Fiddler,他自然什么都知道。

测试抓包利器 Charles 测试用的抓包工具_测试抓包利器 Charles

3.下载与安装

3.1、Fiddler 安装

下载链接:fiddler 下载链接

或者文末关注公众号,后台发送‘666’,网盘--安装包文件里有现成的安装包

下载完成直接运行安装即可。

3.2、HTTPS 证书安装

默认状态下,Fiddler 只能监听 HTTP 请求。比如我们打开百度官网https://www.baidu.com/,然后去Fiddler查看。

下图的 4 种迹象都可以说明 Fiddler 没有安装 HTTPS 证书,导致无法抓取 HTTPS 请求包。

测试抓包利器 Charles 测试用的抓包工具_测试抓包利器 Charles_02

想要抓取 HTTPS 请求包,需要先进行设置。路径:Tool--Options--HTTPS,勾选如下选项。

测试抓包利器 Charles 测试用的抓包工具_fiddler_03

测试抓包利器 Charles 测试用的抓包工具_fiddler_04

点击第 4 步 Actions 时选择‘Export Root Certificate to Desktop’,弹出提示

测试抓包利器 Charles 测试用的抓包工具_测试抓包利器 Charles_05

点击‘确定’。

然后去浏览器,在‘证书管理器’里,将 Fiddler 的证书导入到受信任的证书。

以 chrome 为例,路径为:右上角三个点--设置--安全和隐私设置--安全--高级--管理证书

测试抓包利器 Charles 测试用的抓包工具_测试抓包利器 Charles_06

这时候再去 Fiddler 会话列表,可以看到。HTTPS 数据包就可以成功抓取了。

测试抓包利器 Charles 测试用的抓包工具_fiddler_07

3.3、设置过滤项

3.3.1、根据目标主机地址过滤

1.点击右上角的 filters

2.勾选 Use Filters

3.选择 show only on following Hosts,表示仅抓取下面的地址的消息。

测试抓包利器 Charles 测试用的抓包工具_https_08

4.输入想要抓取的 HTTP 消息的目标地址,用分号隔开,* 可以作为通配符。

5.点击‘changes not yet saved’,保存生效。

测试抓包利器 Charles 测试用的抓包工具_python_09

3.3.2、通过 URL 中关键字符过滤

表示只抓取 url 中包含该关键字的消息,比如做 api 接口测试,则输入关键字‘api’。

测试抓包利器 Charles 测试用的抓包工具_fiddler_10

设置好后就可以查看我们抓到的消息包了

测试抓包利器 Charles 测试用的抓包工具_fiddler_11

4.配置手机抓包

如果我们想要抓取手机上的 HTTP 请求,还需要在手机上进行配置。要注意的是,苹果和安卓的配置方法有很多差异。安卓手机的不同品牌、同品牌的不同型号,配置方法大同小异。下面以安卓手机为例。

4.1、手机抓包设置

1、确保手机和运行 fiddler 的电脑使用的是同一个子网,比如使用同一个 wifi 信号连接

2、设置 Fiddler,允许远程机器连接自己,点击菜单 option,点击 connections 标签,勾选 Allow remote computer to connect, 如下所示

测试抓包利器 Charles 测试用的抓包工具_fiddler_12

3、打开手机 wifi,选择当前的 wifi,点击修改网络,点击“代理设置”,主机名和端口输入 Fiddler 所在机器的 ip 地址(通过 ipconfig 查看)和代理端口 8888。

此时,我们在手机上打开百度,可以看到 Fiddler 成功监控了,但是无法对 HTTPS 会话解密,要想用 Fiddler 抓取手机上的 HTTPS 数据包,还需要在手机下载并安装 Fiddler 根证书。

4.2、手机下载 Fiddler 根证书

根证书地址:http://代理服务器地址:8888/FiddlerRoot.cer

下载完成后,进行安装。

以我的手机为例,安装时系统会提示‘出于安全考虑,请去“设置”里安装’。

路径为:设置--安全与隐私--更多安全设置--从手机存储安装--CA 证书,不同手机路径可能不同,自己找下。

测试抓包利器 Charles 测试用的抓包工具_python_13

此时,Fiddler 就已经可以抓取手机端发送到服务端的所有 HTTP/HTTPS 协议了

测试抓包利器 Charles 测试用的抓包工具_https_14

这样,手机抓包的就算配置成功了,需要注意的是‘防火墙需要允许 Fiddler 进程可以远程链接’。

4.3、补充:解决Android7以上抓包失败问题

此外,在过程中发现,环境都配置好之后,还是会出现APP抓HTTPS抓不到的情况(Android7以上系统),有可能是App内置证书的问题 -- SSL Pinning 机制(也可称为证书绑定)