写在前面
今天有个客户需要在请求前后做一些额外操作,第一时间想到了fidder。由于之前用的不多,很多操作都有点忘了,这次在这里再备注下~~
下载安装
使用文档:docs.telerik.com/fiddler/con…
我使用的经典版的,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 断点命令:
一些技巧
拦截指定的域名和请求
- 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中修改请求信息
3、修改请求信息后,发送请求,在服务器返回响应后等待
在修改信息后,点击Break on Response按钮,进行请求的发送,然后再服务器返回后,进行等待。
4、将响应结果返回,操作完成
在服务器返回信息后,点击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显示时,一定要先点击后,再去修改响应数据。未操作直接修改响应数据后,会导致响应存在问题。
3、修改数据后,返回响应数据并完成操作
在修改响应数据后,点击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系统可以在 服务里面设置,如下: