本文目录:
- 3.1、Fiddler 安装
- 3.2、HTTPS 证书安装
- 3.3、设置过滤项
- 4.配置手机抓包
- 4.1、手机抓包设置
- 4.2、手机下载 Fiddler 根证书
- 4.3、补充:解决Android7以上抓包失败问题
1.Fiddler 简介
Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具,是目前最常用的抓包工具之一。具备的功能:抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等。
2.Fiddler 工作原理
Fiddler 抓包实现原理:客户端服务器进行消息交互时,HTTP 客户端设置 Fiddler 作为代理,把 http 请求发送给 Fiddler,Fiddler 再转发给服务器,同样,服务器返回消息也是先返回给 Fiddler,再由 Fiddler 转发给客户端。就像两个人聊天会通过一个中间人传话,这个中间人就是 Fiddler,他自然什么都知道。
3.下载与安装
3.1、Fiddler 安装
下载链接:fiddler 下载链接
或者文末关注公众号,后台发送‘666’,网盘--安装包文件里有现成的安装包
下载完成直接运行安装即可。
3.2、HTTPS 证书安装
默认状态下,Fiddler 只能监听 HTTP 请求。比如我们打开百度官网https://www.baidu.com/,然后去Fiddler查看。
下图的 4 种迹象都可以说明 Fiddler 没有安装 HTTPS 证书,导致无法抓取 HTTPS 请求包。
想要抓取 HTTPS 请求包,需要先进行设置。路径:Tool--Options--HTTPS,勾选如下选项。
点击第 4 步 Actions 时选择‘Export Root Certificate to Desktop’,弹出提示
点击‘确定’。
然后去浏览器,在‘证书管理器’里,将 Fiddler 的证书导入到受信任的证书。
以 chrome 为例,路径为:右上角三个点--设置--安全和隐私设置--安全--高级--管理证书
这时候再去 Fiddler 会话列表,可以看到。HTTPS 数据包就可以成功抓取了。
3.3、设置过滤项
3.3.1、根据目标主机地址过滤
1.点击右上角的 filters
2.勾选 Use Filters
3.选择 show only on following Hosts,表示仅抓取下面的地址的消息。
4.输入想要抓取的 HTTP 消息的目标地址,用分号隔开,* 可以作为通配符。
5.点击‘changes not yet saved’,保存生效。
3.3.2、通过 URL 中关键字符过滤
表示只抓取 url 中包含该关键字的消息,比如做 api 接口测试,则输入关键字‘api’。
设置好后就可以查看我们抓到的消息包了
4.配置手机抓包
如果我们想要抓取手机上的 HTTP 请求,还需要在手机上进行配置。要注意的是,苹果和安卓的配置方法有很多差异。安卓手机的不同品牌、同品牌的不同型号,配置方法大同小异。下面以安卓手机为例。
4.1、手机抓包设置
1、确保手机和运行 fiddler 的电脑使用的是同一个子网,比如使用同一个 wifi 信号连接
2、设置 Fiddler,允许远程机器连接自己,点击菜单 option,点击 connections 标签,勾选 Allow remote computer to connect, 如下所示
3、打开手机 wifi,选择当前的 wifi,点击修改网络,点击“代理设置”,主机名和端口输入 Fiddler 所在机器的 ip 地址(通过 ipconfig 查看)和代理端口 8888。
此时,我们在手机上打开百度,可以看到 Fiddler 成功监控了,但是无法对 HTTPS 会话解密,要想用 Fiddler 抓取手机上的 HTTPS 数据包,还需要在手机下载并安装 Fiddler 根证书。
4.2、手机下载 Fiddler 根证书
根证书地址:http://代理服务器地址:8888/FiddlerRoot.cer
下载完成后,进行安装。
以我的手机为例,安装时系统会提示‘出于安全考虑,请去“设置”里安装’。
路径为:设置--安全与隐私--更多安全设置--从手机存储安装--CA 证书,不同手机路径可能不同,自己找下。
此时,Fiddler 就已经可以抓取手机端发送到服务端的所有 HTTP/HTTPS 协议了
这样,手机抓包的就算配置成功了,需要注意的是‘防火墙需要允许 Fiddler 进程可以远程链接’。
4.3、补充:解决Android7以上抓包失败问题
此外,在过程中发现,环境都配置好之后,还是会出现APP抓HTTPS抓不到的情况(Android7以上系统),有可能是App内置证书的问题 -- SSL Pinning 机制(也可称为证书绑定)