前言
PC抓包工具有很多,例如 Charles、Fiddler、Whistle、WireShark等等。
但是抓包的原理都是一样的:
- 都需要在同一WIFI环境下,连接代理端口;
- 都需要下载证书来抓取HTTPS的包;
- 都需要系统安装并信任抓包软件的证书;
由于 IOS 系统上设置相对统一,本文主要介绍 FIddler 在 IOS 下的代理配置。
一、下载
官网下载:https://www.telerik.com/download/fiddler
二、设置代理
-
允许远程连接:Fiddler - Tools - Options - Connections,勾选"Allow remote computers to connect"
注:这一步是为了让其他设备连接到本机的代理,例如需要进行抓包的手机设备
-
查看本机 ip
打开 CMD,输入ipconfig
或者 鼠标移动到 Fiddler 面板右上角的 Online 图标上面,也会显示本机 ip
-
手机配置代理端口
至此,手机访问任意页面,既可以在Fiddler中看到请求。只不过由于还未进行 HTTPS 的证书安装,HTTPS 的数据包都是乱码。
三、HTTPS 证书安装
-
Fiddler 开启 HTTPS 解析功能
Fiddler - Tools - Options - HTTPS,勾选"Capture https connects"、"decrypt https traffic"、"ignore server certificate errors (unsafe)"
-
手机安装 Fiddler 证书
打开手机浏览器,输入IP地址: 8888
:
下载证书后,进入 设置 - 通用 - 描述文件与设备管理 - 安装证书
此时,手机中访问 HTTPS 页面,应当能看到 Fiddler 中抓取到了相应的 HTTPS 请求,并且选中后可以正常解析其中的文本信息。
四、补充配置
-
host 重定向工具
类似于修改系统 hosts 文件,可以将域名指向你配置的 ip 地址,一般用于代理测试环境。除了指定 ip,还可以指定端口。
Fiddler - Tools - HOSTS:
当手机访问对应域名的时候,就会被重定向到对应的 ip 和 端口号。
-
重定向:AutoResponder 工具
更灵活的重定向功能,可以改写协议、域名、端口、路径等,且对浏览器侧透明。
五、小技巧
-
快速查看请求参数
选中请求 - 右侧面板(inspectors) - webForms
显示请求 ip
有两种方式显示请求ip,第一种:
- 在标题栏(Protocol、Host、URL等处)右键 - Customize columns - Collection: Session Flags - flag name: X-overrideHost - Add,则面板中新增X-overrideHost列,展示规则重定向结果
- 在标题栏(Protocol、Host、URL等处)右键 - Customize columns - Collection: Session Flags - flag name: X-HostIP - Add,则面板中新增X-HostIP列,展示最终域名解析结果
第二种:Fiddler - Rules - Custom Rules,在弹出的对话框找到 Main 函数,添加
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
- 显示复杂请求(OPTIONS请求)
Fiddler - Rules - Custom Rules,在弹出的对话框找到 OnBeforeRequest 函数,添加
if (oSession.HTTPMethodIs == "OPTIONS") {
oSession["ui-hide"] = "false";
}
Fiddler 脚本文件 使用自定义的 FiddlerScript 语言,但语法格式与 js 高度相似;使用 FiddlerScript 除了可以重定向之外,还可以进行界面配置、会话配置、请求拦截与修改、返回数据拦截与修改等各种操作,有兴趣可以自行学习(官方文档)
-
显示请求方法 (RequestMethod)
列标题右键弹出选项菜单 - 选择 Customize columns:Collection 选项选择 Miscellaneous,Field Name 选择 RequestMethod
禁缓存
Fiddler - Rules - Performance - Disable Caching
开启此选项之后 Fiddler 会在请求结果中设置 Cache-Control: no-cache,使得浏览器不对页面进行缓存。-
保存响应体
如果保存完打开的文件是乱码,则需要点击工具栏"Decode"进行解码再保存
六、其他
Fiddler EveryWhere 界面更美观好用,RequestMethod、ip 无需再单独配置
https://www.telerik.com/download/fiddler-everywhere