Fiddler 的使用
一、安装与汉化
📎fiddler.7z
- FildderSetup:安装包,点击即可安装。
- .dll:放到安装目录下的
script文件夹下。 - .txt:放到软件安装的目录下。
随后再打开就是汉化后的界面了。
二、基础功能
Fiddler由两大部分组成:
- 左侧是会话列表,所有进过
Fiddler的请求都会实时的显示在这边, 每一行代表一个请求。包含 结果码、协议、主机地址、url地址等。 - 右侧是数据面板,在选中某个请求时可以查看该请求的详细信息( 请求头、响应头、cookies等 )。
(一) 开始抓包
开始抓包, 此时符合规则的请求都将显示在会话列表中。
在底部2处显示为Capturing时为抓包状态。 点击可切换为空白,此时将不会在抓包。
1号:控制台, 可以输入指令以实现部分操作。例如:cls清空请求列表。
2号:抓包状态显示, 表示当前是否处于抓包状态下。 ( 空白为非抓包状态下,Capturing为抓包状态)
3号:抓包规则。
- ALL Processes:抓取所有包;
- Web Browsers:只抓取 PC 中浏览器的包;
- Non-Browser:抓取非浏览器的包;
- Hide All:隐藏所有代理:代理手机时,Capturing 无论是否点击,都会自动抓包,抓取想要的包后,可点此隐藏其他抓包。
(二) 过滤请求
过滤请求, 可以按规则显示对应的请求。
1. 开启方法
- 在右侧的选项卡中选中
Filtters; - 勾选
User Filters; Host Filter选择对应的过滤规则
No Host Filter: 不做任何过滤;Hide the following Hosts:隐藏下方填写的域名;Show only the following Hosts: 仅展示下方填写的域名;( 最常用 )Flag the following Hosts:标记下方域名,不隐藏其他域名, 仅高亮显示;
- 在待过滤的网站中填写需要过滤的网站域名, 使用
;进行分隔。
2. 保存方法
点击Actions后选择Run filterset now立刻启用过滤配置。
(三) HTTPS 的抓包
Fiellder默认只抓HTTP的包, 如果需要抓取HTTPS的包需要以下设置:
- 在
工具->选项->HTTPS打开 HTTPS 设置界面。 - 勾选
Capture HTTPS CONNECTs; - 勾选
Decrypt HTTPS traffic - 勾选
Ignore server certificate errors(unsafe)忽略证书(如果不安装 fiddler 证书就如此) ;
补充: 在这之间的所有对话框点击同意即可。
(四) 移动端抓包
移动端抓包,可以抓局域网内移动端设备的包。
1. 保持在同一局域网内, 并获取电脑的局域网 ip
- 手机和电脑连同一个WiFi;
- 手机连WiFi,电脑用网线连接开启这个WiFi的无线路由;
- 电脑开热点,手机连热点;
打开cmd输入ipconfig, 在ipv4 地址对应的一栏为本机的ip 地址。此处为192.168.1.3。
2.Fiddle开启运行连接
- 在
工具->选项->Connections打开连接设置 - 设置端口号, 默认为
8888, 可以自行更改。 - 勾选
Allow remote computers to connect选项,在弹出的对话框中选择ok。 然后重启 软件即可。
3. 为移动端设备设置代理 和 安装证书
如:ip地址为192.168.1.3, 端口号为8888
- 移动端在WiFi设置界面中点击和电脑连接的同一个
WIFI,查看其详情。 - 选择对应
WIFI的代理一栏, 选择手动,并输入上述的计算机ip地址和指定的端口号。( 图1 ) - 在浏览器中打开
ip地址:端口号( 如:192.168.1.3:8888) , 选择FiddlerRoot certificate下载证书。( 图2)
(五) 一些常见命令
Fiddler 左下角的 QuickExec 命令行框是一个非常实用的功能入口,在这里可以快速输入各种内置命令和断点命令,不需要在菜单里翻来翻去。下面是常用的一些命令:
命令 | 类型 | 功能说明 |
cls | 会话管理 | 清空左侧会话列表 |
select .js | 会话管理 | 选中所有 JS 文件请求(可替换后缀) |
select image/* | 会话管理 | 选中所有图片类型的请求 |
size > 50000 | 会话管理 | 选中大小超过 50 KB 的请求 |
allbut image/* | 会话管理 | 隐藏所有图片请求,只看其他内容 |
@hostname | 会话筛选 | 高亮显示指定域名的所有请求 |
urlreplace old new | 请求修改 | 将所有请求 URL 中的 old 替换为 new |
log 内容 | 日志 | 在日志面板输出自定义文本 |
start / stop | 流量控制 | 开始 / 停止捕获流量 |
g / go | 断点控制 | 恢复所有已暂停的请求 |
bp http://example.com | 断点命令 | 在匹配 URL 的请求时中断(bpu) |
bpafter http://example.com | 断点命令 | 在匹配 URL 的响应时中断 |
bps 500 | 断点命令 | 在服务器返回 500 状态码时中断 |
bpv POST / bpm POST | 断点命令 | 在 POST 请求时中断(可换其他方法) |
!bpu / !bpafter | 断点控制 | 清除所有请求 / 响应断点 |
!bps / !bpv | 断点控制 | 清除所有状态码 / 方法断点 |
三、进阶玩法
(一) 修改响应数据
1. 查看并复制接口的响应数据
- 选择一个需要查看的接口, 然后在响应体区域点击
数据(RAW)其中就有本次接口响应的数据。 - 复制对应的响应数据,以便后续修改内部数据。
{"code":"200","msg":"操作成功","data":[]}
2. 开启自动转发(AutoResponder)
注意:开启该功能后,某些网站、应用可能无法正常使用
- 选择
自动转发然后点击启用规则。 - 在左侧选择目标的
url,然后店点击加入规则。选中的url将自动出现在下方的工作台中。
打开第二个下拉框,选则Create New Response...然后点保存。
在弹出的编辑对话框中选择RAW,将Response body goes here...替换为第一步复制并修改好的响应数据。并点击Save保存, 这一步没有任何toast也不会关闭窗口。所以保存后需要手动关闭。
此时下方就会有刚刚创建的规则, 可以使用右键点击查看响应详情。此时该接口再发送请求时,收到的响应数据就只是我们指定的数据了。
四、参考
https://zhuanlan.zhihu.com/p/2051053372690667074
