使用Fiddler设置手机抓包

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

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

介绍 Fiddler 如何截获移动端发出的 HTTP/HTTPS 请求。

一:环境准备
Fiddler 如果想要实现手机抓包,需要先满足下面 3 个条件
(1)电脑上安装有 Fiddler 抓包工具
(2)安装有 Fiddler 的电脑必须跟手机处在同一个网络里。
(3)在 Fiddler 中设置好捕获 HTTPS(具体方法请百度)。

二:Fiddler截获手机原理图
Fiddler 作为代理服务器,可以接收远程机器发来的 HTTP/HTTPS 协议的数据包,并且将其转发到 Web 服务器。
使用Fiddler设置手机抓包

三:截获手机发出的 HTTP 包有什么作用
用处一:APP 开发人员利用 Fiddler 可以截获手机发出的 HTTP 包,从而调试 APP 程序。
用处二:软件测试人员可以用其来测试智能手机上的软件,做接口测试或者安全测试。
用处三:截获了 HTTP/HTTPS 后,可以下断点修改 HTTP 请求和 HTTP 响应

PS:下面是重点 配置项


四:手机抓包配置

启动 Fiddler,单击菜单栏中 Tools->Fiddler Options->Connections,选中“Allow remote computers to connect”,如图 所示
使用Fiddler设置手机抓包
选中后就表示允许远程机器把 HTTP/HTTPS 请求发送到 Fiddler 上来(配置完后记得要重启 Fiddler)。同时,我们还能看到 Fiddler 的工作端口号是 8888。

获取 Fiddler 所在机器的 IP 地址:
查看电脑的 IP 地址,按快捷键【Windows+R】,调出运行窗口。输入 CMD,可以打开CMD 命令行工具;输入命令“ipconfig”,可以找到 IP 地址。
一个电脑可能有多个网卡,注意要找到真正的 IP 地址,例如某 IP 地址是 10.0.0.11,如图 所示。
使用Fiddler设置手机抓包
或者在 Fiddler 中,将鼠标放在右上方的“online”图标上,提示信息中也能看到 IP 地址,如图所示。
使用Fiddler设置手机抓包

手机上设置代理服务器:
本节内容适合所有的设备,包括 iPhone 和 Android。下面以华为手机为例进行讲解,
其他品牌的手机操作方法与此差不多。具体操作步骤如下。
(1)打开手机中的设置->WLAN,找到手机当前连接的 Wi-Fi(iPhone 是单击图标 ,一些 Android 手机是单击右边的箭头,有的是长按弹出对话框),如图所示。

使用Fiddler设置手机抓包
将代理改为手动,服务器主机名为 Fiddler 所在电脑的 IP 地址,服务器端口为 8888,如图所示
使用Fiddler设置手机抓包
单击“连接”就可以设置成功(有些 Android 系统的手机需要重新输入 Wi-Fi 密码才能连接)。

测试 Fiddler 捕获手机发出的 HTTP :
打开手机上的浏览器,在浏览器中输入 www.163.com。163 网站用的是 HTTP 协议而不是 HTTPS 协议,查看 Fiddler 是否捕获到了 HTTP 数据包。

打开手机上的 APP,在 APP 中进行一些操作,查看 Fiddler 是否能捕获到 HTTP 数据包。

如果抓不到 HTTP 的包,很可能是 Windows 防火墙的问题,到控制面板中关闭防火墙后再试试。

捕获手机上的 HTTPS
如果只是抓取手机上 APP 或者浏览器发出的 HTTP 请求,则不需要安装证书,直接就能抓到。
如果需要捕获 HTTPS 请求,则必须把 Fiddler 证书安装到手机上。
1.打开浏览器 输入ip地址加端口号会出现下图所示,点击下载
使用Fiddler设置手机抓包
在安装证书的界面,给证书取一个名字,然后单击“确定”,系统会提示证书安装成功,
使用Fiddler设置手机抓包
证书安装成功后,如果你的手机系统没有设置密码或者锁屏图案,则系统会提示你设置锁屏图案或者密码,如图 14-12 所示。
当然这种方法可能会安装失败。如有的手机无法按这种方式安装证书并提示“无法安装该证书,因为无法读取证书文件”。

测试 Fiddler 捕获手机的 HTTPS

打开手机上的浏览器,输入 https://www.baidu.com,看看手机能否捕获到百度的 HTTPS请求。

打开手机上的 APP,做一些操作,看看手机能否获取到 APP 发出的 HTTP 和 HTTPS
请求。