Fiddler系列课程笔记(三): HTTPS及安卓&iOS设备APP抓包
  lc8oUiWFsYVQ 2024年03月31日 19 0

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的配置如下:

5.1.2.2 Willow的实例演示

创建两个项目,分别为 dev(开发环境)、test(测试环境),然后通过项目的复选框快速在这两个环境之间进行切换。
Willow的操作如下:

新建test环境和dev环境的工程:


给dev环境的工程,添加规则:






给test环境的工程,添加规则:




我们测试一下test环境-配置规则的效果:


我们看一下test环境-test.png图片:


我们测试一下dev环境-配置规则的效果:


5.1.3 Willow插件-个性化配置




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月31日 0

暂无评论

推荐阅读
lc8oUiWFsYVQ
最新推荐 更多