《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(12)-Fiddler设置IOS手机抓包,你知多少???

1.简介

Fiddler不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求。

Fiddler 能捕获Android 和 Windows Phone 等设备发出的 HTTP/HTTPS 请求。同理也可以截获iOS设备发出的请求,比如 iPhone、iPad 和 MacBook 等苹果设备。

今天宏哥讲解和分享Fiddler 如何截获iOS移动端发出的 HTTP/HTTPS 请求。

2.环境准备

Fiddler 如果想要实现手机抓包,需要先满足下面 3 个条件:

(1)电脑上安装有 Fiddler 抓包工具。

(2)安装有 Fiddler 的电脑必须跟手机处在同一个网络里,并且手机网络代理必须设置为fiddler,当我们的手机发送数据时必须经过Fiddler这一层服务。

(3)在 Fiddler 中设置好捕获 HTTPS(具体方法请百度)。

3.Fiddler截获手机原理图

Fiddler 作为代理服务器,可以接收远程机器发来的 HTTP/HTTPS 协议的数据包,并且将其转发到 Web 服务器。

4.截获手机发出的 HTTP 包有什么作用

1:APP 开发人员利用 Fiddler 可以截获手机发出的 HTTP 包,从而调试 APP 程序。

2:软件测试人员可以用其来测试智能手机上的软件,做接口测试或者安全测试。

3:截获了 HTTP/HTTPS 后,可以下断点修改 HTTP 请求和 HTTP 响应。

PS:下面是重点 配置项

5.IOS手机抓包配置

5.1Fiddler配置

在Fiddler中我们还需要设置远程连接权限和端口号,具体操作步骤如下:

1.启动 Fiddler,单击菜单栏中 Tools->Fiddler Options->Connections,选中“Allow remote computers to connect(允许远程计算机连接)”,然后设置一个端口,也可以默认为8888。如下图所示:

选中后就表示允许远程机器把 HTTP/HTTPS 请求发送到 Fiddler 上来(配置完后记得要重启 Fiddler)。同时,我们还能看到 Fiddler 的工作端口号是 8888。

5.2确保手机和PC在同一网络环境下

手机和电脑必须在同一局域网,手机最好也关闭4G/5G网络流量, 并且使用wifi,让手机和fiddler在同一局域网下,具体操作步骤如下:

5.2.1获取Fiddler所在机器的IP地址

1.让android手机的网络进出口指向局域网中fiddler服务地址, 那么我们这里就必须要知道Fiddler的ip地址和端口号(port)。

这里Fiddler的ip地址就是我们当前电脑中的本机ip地址。查看电脑的 IP 地址,按快捷键【Windows+R】,调出运行窗口。输入 CMD,可以打开CMD 命令行工具;输入命令“ipconfig”,可以找到 IP 地址(找到其中的IPv4地址即为本机ip)。
一个电脑可能有多个网卡,注意要找到真正的 IP 地址,例如某 IP 地址是 10.0.0.11,如下图所示:

2.可以对照一下当前所安装的Fiddler中的ip地址是否一致,你可以直接在fiddler上 将鼠标放置于 Online 工具上就会显示本机ip地址,如果一样那么就可以确保一会设置手机和电脑在同一个局域网内。如下图所示:

5.3iOS手机设置网络代理

1.打开IOS设备的 设置 -> 无线局域网,找到你要连接的网络,点击右边的符号,如下图所示:

 

2.打开网络设置对话框,下拉到最后,找到配置代理,点击有点的 > 符号,弹出网络代理配置,进行如下配置,并点击右上角的 存储,如下图所示:

5.4测试Fiddler捕获手机发出的HTTPS

启动 IOS设备中的浏览器或应用,在fiddler程序中可以看到完成的请求和响应数据,如图所示:

注意:

在上述完成的请求中,可以看到存在很多的 Tunnel to xxx 443 问题,这是由于网页中有很多请求都是 HTTPS ,因此需要在手机中安装 Fiddler 生成的证书,并在手机中信任该证书。

6.ios手机下载安装与配置证书

跟android一样,我们使用Fiddler来抓取ios手机的HTTPS数据包也是需要安装根证书从而来解码我们的HTTPS数据报文,

6.1下载证书

那么其实下载证书步骤其实也跟android手机是差不多的。

1.使用ios手机中自带的的safari浏览器,输入配置好的ip+端口跳转到 Fiddler Echo Service 证书下载页(其他浏览器可能不成功),如下图所示:

 

2.点击 FiddlerRoot 证书,将其下载到手机中,打开手机 设置 -> 通用 -> VPN与设备管理,找到 已下载的描述文件(FiddlerRoot 证书),如下图所示:

3.点击 DO_NOT_TRUST_FiddlerRoot,点击右上角的 安装,安装完后,点击右上角的 完成,如下图所示:

4.由于iOS手机提供了系统层面的设置,所以在确认证书安装好、代理设置没问题后,需要对已安装的证书进行信任设置。即,点击 设置 -> 通用 -> 关于本机 -> 证书信任设置,开启 Fiddler 证书信任,接受这样的对话,即允许第三方窃听你的所有通信。如下图所示:

5.到此,Fiddler 就可以抓取 HTTPS 请求了。可以看出,iOS 上的设置要比 Android 上复杂一些,也反映出 iOS 更安全一些。

7.开始ios抓包

配置好PC端的Fiddler、手机也安装了证书、代理也设置之后,我们就可以在手机上操作app捕获数据包了,然后在Fiddler中查看发送的请求和响应报文了,如下图所示:

手机APP:

手机百度网页:

8.小结

注意:

1.不使用Fildder 进行抓包时,建议将手机网络代理关闭,以防有其他网络问题。

2.必须要开启证书信任,否则会出现无法抓到HTTPS包的情况。

3.如果还是抓不到包,需查看一下防火墙是否关闭,是否没有允许Fiddler程序通过防火墙,或者检查一下证书是否出现问题,或者 删除所有的证书之后 ,重新安装Fiddler与手机的证书重置后再次尝试抓包!

Tags: