fiddler使用记录

152 阅读4分钟

写在前面

今天有个客户需要在请求前后做一些额外操作,第一时间想到了fidder。由于之前用的不多,很多操作都有点忘了,这次在这里再备注下~~

下载安装

官网:www.telerik.com/fiddler

使用文档:docs.telerik.com/fiddler/con…

image-20240507223602838.png

我使用的经典版的,everywhere会收费

Https配置

Fiddler 默认能直接抓取 HTTP 请求,要想抓取 HTTPS 请求就需要安装 Fiddler 证书。

具体步骤:

a. 点击工具栏中 Tools——>Options...

b. 切换到 HTTPS 选项卡,勾选 Capture HTTPS CONNECTs,勾选 Decrypt HTTPS traffic

c. 重启 Fiddler

图片

图片

面板功能说明

抓包开关

File –> Capture Traffic,开启后左下角显示,也可以直接点击左下角图标来关闭/开启抓包功能。

图片

Fiddler 左侧面板字段说明

用户抓到数据包后,显示在左侧列表中,其中有许多列名和图标,接下来挑几个重要的讲解。

图片

左侧面板列名:

图片

左侧面板图标:

图片

Fiddler 右侧面板

左边面板都看完之后,接下来再看下右侧面板 Get Started 欢迎页签、Statistics 统计页签、inspectors 检查页签、AutoResponse 自动响应页签、composer 构建页签、log 日志页签、Filters 过滤页签、Timeline 请求响应时间、Fiddler Script Fiddler 脚本。

图片

Fiddler 命令行

Fiddler 提供了许多内置函数,可在命令框运行,这个命令行隐藏得很好,如果不仔细看还真不好找,命令框在左侧面板下方。

图片

Fiddler 常用命令:

图片

除了常用命令之外,还提供了断点功能,断点便是中断请求或者响应,比如在请求时加上断点,修改数据包再发送给服务器。

Fiddler 断点命令:

图片

一些技巧

拦截指定的域名和请求

image-20240507230548452.png

  1. Filters页签中勾选Use Filters开启过滤器

2.选择Hosts下两个过滤条件:Zone和Host

3.Zone只显示内网(Intranet)或互联网(Internet)请求

a) Show only Intranet Hosts -- 只显示内部的Hosts。

b) Show only Internet Hosts -- 只显示外网的Hosts。

4 Host指定某个域名下的会话

a) Hide the following Hosts -- 隐藏指定Hosts。

b) Show only the following Hosts -- 仅显示指定Hosts。

c) Flag the following Hosts -- 加粗显示指定Hosts。

修改请求响应数据数据

修改请求数据

在发起请求后,需要修改请求的数据时,可以设置请求前设置断点

1.设置请求前断点

Rules--Automatic breakpoints--before request(或者按F11键)

这种方式的断点会对所有请求生效

或者在命令行中,输入**bpu 域名**,这种方式只会对配置的域名添加断点,访问其他的可以正常访问,不会有断点

2、选中请求,进入Inpectors--Raw中修改请求信息

img

3、修改请求信息后,发送请求,在服务器返回响应后等待

在修改信息后,点击Break on Response按钮,进行请求的发送,然后再服务器返回后,进行等待。

img

4、将响应结果返回,操作完成

img

  在服务器返回信息后,点击Run to Completion完成响应数据的返回并完成。

在只修改请求数据时,也可以跳过第三步,直接操作第四步,到响应结果

二、修改响应数据

方式1: 设置响应在服务器返回后的断点(Rules->automatic Breakpoints->选择断点方式)

方式2: 通过fiddlerScript来修改响应的json数据

方式3: 通过AutoResponder来改变响应结果

 这里针对方式1详细描述

1、设置响应后断点

  Rules--Automatic breakpoints--after response(或者按alt+F11键):这种方式的断点会对所有请求生效

  或者在命令行中,输入bpafter 域名,这种方式只会对配置的域名添加断点,访问其他的可以正常访问,不会有断点

2、选中请求,进入Inpectors--Raw中修改响应信息

  在这一步时一定要注意如果有“response body is encoded.click to ecode显示时,一定要先点击后,再去修改响应数据。未操作直接修改响应数据后,会导致响应存在问题。

img

3、修改数据后,返回响应数据并完成操作

img

 在修改响应数据后,点击Run to Completion返回给响应数据,完成操作。

问题

The system proxy was changed.Click to reenable capturing

运行fiddler时,提示“The system proxy was changed.Click to reenable capturing.”,即使点击了该提示,重新进行抓包,不一会儿,该提示又会出现,又不能进行抓包了。

解决:检查自己电脑有没有安装VPN,我的是easy connect。 VPN的自启动服务SangforSP更改了代理,即使被其他代理软件更改了,过一时间,还是会更改过来。 window系统可以在 服务里面设置,如下:

在这里插入图片描述

参考:

mp.weixin.qq.com/s/aCSTX1P5-…