Fiddler系列课程笔记(三): HTTPS及安卓&iOS设备APP抓包
1.HTTPS抓包
1.1 什么是HTTPS?
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,
主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
设计目标主要有三个:
(1)数据保密性:保证数据内容在传输的过程中不会被第三方查看
(2)数据完整性:及时发现被第三方篡改的传输内容
(3)身份校验安全性:保证数据到达用户期望的目的地
因此,Fiddler 要实现 HTTPS 抓包关键点就是证书,有了证书才能对抓到的 HTTPS 流量进行解密/加密。
1.2 Fiddler HTTPS 抓包原理
Fiddler HTTP 抓包原理,如下图:
其实,Fiddler 是浏览器的服务器,而 Fiddler 是服务器的客户端。
在没有 Fiddler 的情况下,浏览器拥有的公开证书来自服务器,服务器保存私有证书。服务器使用私有证书对数据进行加密,浏览器使用公有证书对数据解密。
此时,我们添加了一个 Fiddler 作为代理,那么此时客户端拥有的公共证书应该来自 Fiddler,而 Fiddler 拥有私有证书的同时,还拥有来自服务器的公共证书。浏览器和服务器交互如下:
请求:浏览器使用 Fiddler 公共证书将数据加密,发送给 Fiddler。Fiddler 使用私有证书解密,然后将内容采用服务器的公共证书再次加密,发送给服务器,服务器使用自己的私有证书进行解密。
响应:服务器使用私有证书对响应数据加密,然后发送给 Fiddler。Fiddler 将收到的数据使用服务器的公共证书解密,然后再次使用自己的私有证书加密,将再次加密后的数据发送为浏览器,浏览器收到后使用 Fiddler 的公共证书进行解密,将解密的内容最终展现给用户。
下面将介绍怎样通过 Fiddler 抓取 HTTPS 请求。
1.3 配置&安装证书
①:Fiddler 默认情况下将HTTPS连接隐藏了的,查看菜单“Rules”->“Hide CONNECTs”是否被勾选,勾选即隐藏HTTPS连接。(不要勾选)
②:点击“Tools”->“Options”->“HTTPS”,分别勾选[Capture HTTPS CONNECTs]和[Decrypt HTTPs traffic]复选框。
[Capture HTTPS CONNECTs]:表示我们能够抓取到 HTTPS 连接。 [Decrypt HTTPs traffic]:表示会对收到的 HTTPS 流量尝试使用 Fiddler 的证书进行解码。 如下图: ③:如果勾选了该复选框,且以前没有安装 Fiddler 证书。此时,Fiddler 将弹出提示安装证书,该提示框提示“信任 Fiddler Root 证书?” 当然信任(不信任就玩不下去了),直接点击“Yes”即可。如下图: ④:Window 系统将弹出安全警告,点击“是”,安装 Fiddler Root 证书到 Windows 中。如下图: ⑤:接下来,提示是否将 Fiddler Root 证书添加到本机 Root 证书列表?直接点击“是”,系统提示证书添加成功。如下图:
⑥:如果你还是不放心证书是否真的安装成功了。可以在 HTTPS 选项卡中点击“Actions”,选择“Open Windows Certificate Manger”去打开 Windows 证书管理器。如下图:
⑦:在打开的证书管理器中,点击“操作”菜单,选择“查找证书”,在“包含”输入框中输入“Finddler”查找 Fiddler 相关的证书,如果能够正常看见 Fiddler 证书,说明证书安装成功。如下图:
1.4 抓包效果
通过前面一些列的操作,已经完成 Fiddler 抓取 HTTPS 的配置。此时,我们尝试访问一些 HTTPS 网站,查看 Fiddler 是否能够抓取到 HTTPS 请求,如下图:
1.5 [补]:HTTPS包抓不到,怎么解决?
如果你依然不能抓取到 HTTPS请求的包,那需要做一下检查:
-
检查①:检查一下你使用的浏览器是否为Firefox,请切换到IE或者Chrome浏览器。
Firefox抓取HTTPS流量稍微复杂些,后面章节重点介绍。
-
检查②: 检查Fiddle 的右下角,是否有一个小图标(Capturing)
上图中,我们可以看见有一个 “Capturing” 图标。如果我们能够看见该图标,则表示Fiddler当前处于抓包中。如果此处没有该图标,则表示 Fiddler 没有抓包。
-
检查③:查看菜单“Rules”->“Hide CONNECTs”是否被勾选,勾选即隐藏HTTPS连接。(不要勾选)
-
检查④:查看菜单“Tools”->“Options”->“HTTPS”,是否勾选[Capture HTTPS CONNECTs]和[Decrypt HTTPs traffic]复选框。(这两个都要勾选)
保险起见,勾选后,在[Actions]设置中,点一下“Trust Root Certificate”,然后ok保存确认一下。
-
检查⑤:终极大招,重置fiddler所有证书。
点击“HTTPS”选项卡中的“Actions”,点击“Reset All Certificates”去重置所有的 Fiddler Root 证书,重新安装证书,或者重启 Fiddler。
如果最终还还不行,那就有点气人了哦! 卸载fiddler,重装吧~ 要不,不抓了叭!!! ╭(╯^╰)╮
2.Firefox-HTTPS抓包
前面章节介绍了Fiddler抓取IE和Chrome的HTTPS流量,本章将介绍Fiddler怎样抓取Firefox浏览器的HTTPS流量。 Firefox浏览器和[IE、Chrome的抓包]稍有不同。
这是因为 Chrome 和 IE 均是使用 Windows 证书管理起来管理证书,而 FireFox 则是使用自己的证书管理器来管理证书。
因此,要想使用 Fiddler 成功抓取 Firefox 的 HTTPS 流量,我们需要将Fiddler的根证书安装到 Firefox 的证书管理器中。
具体操作如下:
2.1 获取Fiddler根证书
①:点击“Tools”->“Options”菜单选项,进入 HTTPS 选项卡,点击“Actions”按钮,选择“Export Root Certificate to Desktop”下拉按钮,将 Fiddler 根证书导出到桌面。如下图: 下图提示导出成功:
2.2 Firefox导入Fiddler根证书
②:在 Firefox 设置页面搜索“证书”关键字,找到证书相关的配置。点击“查看证书”按钮,如下图:③:打开 Firefox 的“证书管理器”,在“证书颁发机构”标签页点击“导入”按钮去将 Fiddler 根证书导入到 Firefox。如下图:④:选择 Fiddler 根证书,如下图:⑤:提示是否要信任该证书,在证书信任提示框中,分别勾选“信任由此证书颁发机构来标识网站”和“信任由此证书颁发机构来标识电子邮件用户”。如下图:⑥:最后点击“确认”按钮,证书就安装完成了。
2.3 确定Firefox的代理方式
证书安装完成后,我们还需要查看 Firefox 的代理连接方式,选择“使用系统代理设置”或者手动配置代理。否则 Fiddler 可能抓不到 Firefox 的数据包。 选择“使用系统代理设置”,如下图:
如果选择“手动配置代理”,如下图:
2.4 访问HTTPS网站验证
Firefox 一切配置搞定后,就可以重启 Firefox,访问一个 https 网站,使用 Fiddler 去抓包,你会发现 Fiddler 能够抓取 Firefox 的 HTTPS 数据包了,如下图:
3. 安卓手机APP抓包
本章节将介绍卓手机怎样利用 Fiddler 抓取 APP 的 HTTP/HTTPS 数据流量。
注意:本文将以小米 6X 为例,不同手机的配置稍有不同
3.1 配置 Fiddler
点击打开“Tools”->“Options”->“Connections”选项,勾选“Allow remote computers to connect”允许远程计算机连接到 Fiddler。如下图:
3.2 为安卓手机安装证书
如果只是抓HTTP的包,不用安装证书,手动配置代理即可,但是如果要抓HTTPS的包,则需要安装证书。
使用手机浏览器访问 Fiddler 服务,根据上图可知,Fiddler 的端口为 8888(访问地址为 Fiddler所属主机的IP地址加Fiddler端口)。
访问: http://[Fiddler所在机器的IP地址]:[Fiddler端口]/ ,[http://192.168.1.3:8888/] 如下图:
点击“FiddlerRoot certificate”链接按钮,下载 Fiddler 的根证书。如下图:
打开浏览器的下载管理器,点击刚刚下载的 Fiddler 证书,安装证书。将该证书命名为 Fiddler。如下图:
视频中老师安装方式不太一样:打开设置>更多设置>系统安全>加密与凭据>从存储设备安装 证书安装完成后,可以在系统设置中搜索“凭据”,打开“信任的凭据”,找到刚刚安装的 Fiddler 证书。Fiddler 证书信息如下图:
3.3 为安卓手机配置代理
前面已经成功安装了 Fiddler 证书,下面将对手机进行代理配置。打开手机的设置,找到“WLAN”选项,如下图:
选择当前正在使用的 WIFI(注意:安装 Fiddler 的电脑必须和手机处于同一局域网,两者能够互通),点击查看 WIFI 的详细信息。如下图:
点击 WIFI 的代理,选择“手动”,然后设置代理的IP和端口。其中,主机名就是本机的ip,IP地址为Fiddler所在机器的IP地址 (可以通过Fiddler的右上角的[Online]查看本机IP地址),端口在Fiddler中配置的8888,如下图: 到这里,手机端的代理就配置 OK 了,接下来见证奇迹。
3.4 抓取安卓手机上APP的HTTP/HTTPS流量
先打开 Fiddler,且 Fiddler 处于抓包中。然后,在手机中打开“今日头条”APP,如下图: 此时,再看看 Fiddler,你会发现已经抓取了很多关于“今日头条”的 HTTPS 流量。如下图: 老师抓抖音视频的包,也是可以的:
4.iOS设备APP抓包
iPhone手机、iPad都属于iOS设备,iOS设备APP抓包和上述安卓设备抓包设置,差不多哈。
4.1 配置 Fiddler
①:点击打开菜单“Tools”->“Options”->“Connections”选项,勾选“Allow remote computers to connect”允许远程计算机连接到 Fiddler。如下图:
②:点击打开菜单“Tools”->“Options”->“HTTPS”,是否勾选[Capture HTTPS CONNECTs]和[Decrypt HTTPs traffic]复选框。(这两个都要勾选)
③:重启Fiddler,关闭防火墙,或者防火墙允许Fiddler进行远程连接。
4.2 为iOS设备配置代理
④:iOS设备点击设置>WiFi>打开连接WiFI设置,找到"配置代理",选择"手动",然后设置代理的IP和端口。如图所示: 设置代理的IP和端口。其中,主机名就是本机的ip,IP地址为Fiddler所在机器的IP地址。(可以通过Fiddler的右上角的[Online]查看本机IP地址,端口在Fiddler中配置的8888) 到这里,iOS手机端的代理就配置 OK 了,接下来见证奇迹。
4.3 抓取iOS设备上APP的HTTP流量
先打开 Fiddler,且 Fiddler 处于抓包中。然后,在手机中打开“柠檬班”APP,如下图:
4.4 为iOS设备安装证书
如果只是抓HTTP的包,不用安装证书,手动配置代理即可,但是如果要抓HTTPS的包,则需要安装证书。
⑤:iOS设备连接WiFi,确保iOS设备可访问http://[Fiddler所在机器的IP地址]:[Fiddler端口]/,该地址会返回Fiddler Echo Service页面。 如上图所示,iOS手机访问[http://192.168.1.89:8888/] : 如果要抓HTTPS的包,则需要安装证书。点击下载,如图所示:
⑥:证书安装成功后,在iOS设备-设置>通用>关于本机>证书信任设置中,信任刚安装的Fiddler证书。
4.5 抓取iOS设备上APP的HTTPS流量
先打开 Fiddler,且 Fiddler 处于抓包中。然后,在手机中打开“抖音”APP,如下图
5. Fiddler-插件中心
Fiddler-插件中心:https://www.telerik.com/fiddler/add-ons Fiddler-Willow插件-官网地址:http://qzonetouch.github.io/commonWidget/willow
5.1 Fiddler-Willow插件
除了上述插件。还有另外一个常用的fiddler插件--Willow插件:
Willow 插件可以统计数据包、修改Host、请求重定向、编码转换、低网速模拟、慢速网络模拟可视化、断点调试、过滤HTTP请求等功能。
Fiddler-Willow插件-官网地址:http://qzonetouch.github.io/commonWidget/willow
5.1.1 Willow插件的安装
点击“Fiddler4版本”链接,如下图: 进入下载页面,下载地址:https://github.com/QzoneTouch/commonWidget/releases ,选择 WillowSetup-1.5.2.zip下载。
安装Fiddler-Willow插件:
插件安装完成后,会自动启动fiddler,可以在fiddler面板看到这个Willow插件的标识:
5.1.2 Willow插件的使用
5.1.2.1 fiddler自带配置的局限性
下面是HOSTS的配置,可以通过这里直接控制启用或者关闭某些环境的host(效果等同于编辑修改(C:\Windows\System32\drivers\etc\hosts))
而AutoResponder的配置如下:
文章来源:https://www.toymoban.com/news/detail-844341.html
5.1.2.2 Willow的实例演示
创建两个项目,分别为 dev(开发环境)、test(测试环境),然后通过项目的复选框快速在这两个环境之间进行切换。 Willow的操作如下: 新建test环境和dev环境的工程:
给dev环境的工程,添加规则:
给test环境的工程,添加规则:
我们测试一下test环境-配置规则的效果: 我们看一下test环境-test.png图片:
我们测试一下dev环境-配置规则的效果:
5.1.3 Willow插件-个性化配置
文章来源地址https://www.toymoban.com/news/detail-844341.html
到了这里,关于Fiddler系列课程笔记(三): HTTPS及安卓&iOS设备APP抓包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!