Fiddler-断点(After Responses)+修改Get请求的返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fiddler-断点(After Responses)+修改Get请求的返回值相关的知识,希望对你有一定的参考价值。

参考技术A 背景:

测试时需要看一些特殊值时的页面表现,这时可以通过Fiddler在接口返回值前修改值再传回前端,查看特殊值的表现。

1.设置Fiddler可以监控https请求(百度一下,你就知道)

2.设置过滤(方便排除无关页面的接口)

3.在Rules里勾上After Responses,设置断点。表示在接口返回值后,前端拿到值前,拦截接口。

4.刷新页面,捕捉接口请求

被阻拦的接口,点右侧绿色按钮“Run to Completion”,让接口通过,直到阻拦到自己要捕捉的接口

①第1次捕捉到,先让他通过(这个是个options请求,不带数据)

②第2次捕捉到,双击接口,右侧点击Transformer(第二次捕捉到的接口带着数据)

③ 将GZIP改选为None,然后切至TextView修改值

(注意:之后要切回Transformer,将None改回GZIP ,然后点绿色按钮“Run to Completion”)

5.查看页面,发现页面上值已更改

6.完成后,断点设置为Disabled即可关闭断点

7.关于为什么捕捉接口时,有2个相同的接口,参考:

https://www.cnblogs.com/heioray/p/9392533.html

在某些情况下,普通的get或者post请求回首先自动发起一次options请求,当options请求成功返回后,真正的ajax请求才会再次发起。

基本思路就是server端在接收到请求的时候,先去判断下是不是 options请求 ,判断下来源,没问题的时候返回个200,再发请求数据的接口。

Fiddler抓包软件

下载地址

一、简介

Fiddler是比较好用的web代理调试工具之一,它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置断点,篡改及伪造Request/Response的数据,修改hosts,限制网速,http请求性能统计,简单并发,接口测试,辅助自动化测试,等等。

二、工作原理

fiddler未参与时,客户端与服务端的请求流程图:浏览器访问一个网站,浏览器给webserver发送一个Request,webserver接收到Request后进行处理,返回给浏览器Response,然后浏览器解析Response中的html,展现网页给用户。如图:
技术图片
Fiddler工作于七层中的应用层,类似于代理服务器的形式,通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据;启动fiddler后会监听本地127.0.0.1的8888端口(默认端口),IE/Chrome浏览器会自动设置局域网代理(Firefox代理是独立的,需要单独设置),如图:
技术图片
此时,fiddler就作为代理服务器,浏览器访问流程:
技术图片

四、Fiddler界面介绍

技术图片

go:用于断点调试Debug,类似于Eclipse调试代码的F6,下图红圈中的位置

  1. 点击一下会出现一个蓝色向上的箭头,此时的意思是截获发送request的时会有一个断点,可以点击go按钮继续往下走
  2. 再点击一下会出现一个向下的绿色箭头,此时的意思是截获request返回时会有一个断点

Stream:fiddler代理模式流模式与缓冲模式之间切换,默认是缓冲模式,按下即为流模式。

  1. 缓冲模式:当一个HTTP请求的所有内容全部返回给Fiddler时候才在界面展示出来;
  2. 流模式:Fiddler实时展示返回的内容

Decode:解压请求,将HTTP返回的内容全部解压出来,方便查看。

Keep sessions: 保持sessions会话,默认为保持全部,按照你需求的大小,电脑内存的大小选择保持多少会话,毕竟越多约占用电脑资源。

Any Process: 过滤请求,可以指定只抓取某个也面或者浏览器的请求,操作方式:按住靶心按钮,出现十字状,按住鼠标拖动到目标浏览器界面,可看到浏览器界面变成黑色,方开鼠标后按钮处会出现你只捕获的目标进程编号。

Browes: 快速启动浏览器按钮,下拉菜单里面有各种本机装有的浏览器,比如IE,Chrome,Firefox等

TextWizard: 编码/解码问本内容,比如URL关键字解码/编码,Base64/JS String之类的解码,编码

Tearoff: 分离面板,将左边的会话面板与右边的面板分离,浮窗,取消分离的话是直接关闭分离出来的面板即可

控制台:可以在其中输入命令行,比如输入help,就会在浏览器中打开常用的命令

 

Fiddler想要抓到数据包,要确保Capture Traffic是开启,如果需要解密https请求需要进行配置,配置方法后面会讲。

1.会话列表内各字段的含义:

技术图片

#                 抓取HTTP Request的顺序,从1开始,以此递增
Result         HTTP状态码
Protocol      请求使用的协议,如HTTP/HTTPS/FTP等
Host            请求地址的主机名
URL            请求资源的位置
Body           该请求的大小
Caching      请求的缓存过期时间或者缓存控制值
Content-Type      请求响应的类型
Process       发送此请求的进程:进程ID
Comments   允许用户为此回话添加备注
Custom        允许用户设置自定义值

列表内部分图标含义:

技术图片

请求已经发往服务器

技术图片

已从服务器下载响应结果

技术图片

响应需要客户端证书验证

技术图片

服务端错误

技术图片

请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)

技术图片

会话被客户端、Fiddler 或者服务端终止

 

3.右上方字段含义

技术图片

(1)Statistics     请求的性能数据分析

如果要看整个页面从请求,到最后一个请求结束的整体时间,也可以在会话列表中,ctrl+点击需要统计的请求,可以看到总体明细

  • show chart:数据可视化处理

(2)Inspectors   对请求进行解包,可以查看相应的请求和响应信息,上半部分是请求的内容,下半部分是响应的内容

(3)AutoResponder 允许拦截指定规则的请求

这块允许你拦截指定规则的请求,并返回自定义的资源,从而代替服务器响应。

 例如:添加一个自定义规则,当我访问‘百度’网站时,就会被劫持-->返回我自定义的图片;如果不想再用此规则,取消勾选,然后右击选择‘remove’。

技术图片

关键词有很多匹配规则,如:

  1. 字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配
  2.  正则表达式匹配:以“regex:”开头,使用正则表达式来匹配,这个是区分大小写的

4) Composer 自定义请求发送服务器(也可用于接口测试)

 前后端接口连调,可以用来伪造请求--需要后端接口:修改里面的数据参数,伪造请求,再访问查看效果。

可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求;Parsed模式下你只需要提供简单的URLS地址即可

5)Filters 请求过滤规则

Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。

技术图片

1、Zone 指定只显示内网(Intranet)或互联网(Internet)的内容

2、Host 指定显示某个域名下的会话

技术图片

如果框框为黄色(如图),表示修改未生效,点击红框里的文字即可

6) Timeline 请求响应时间

在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间

3.Fiddler 设置解密HTTPS的网络数据

解密HTTPS需要手动开启,依次点击:

1. Tools –> Fiddler Options –>  HTTPS—>勾选Decrypt HTTPS Traffic—>yes—>安装证书—>ok

技术图片

4.修改电脑系统hosts

将所有的文件映射到指定的IP或者服务器下面

配置如下:Tools---->Hosts---->勾选Enable remapping of requests for one host to a different host or IP,overriding DNS.然后host编辑区域,输入需要域名需要指向的服务器公网IP。查看结果之后要关闭代理功能有两种方式1、取消之前的enable,save;2、直接退出Fiddler,不用去更改电脑system中的host文件。

技术图片
点击tools-->telerik fidder Options-->Connections,可以修改代理端口
技术图片

 

 

五、 Fiddler 内置命令与断点

FIddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情,比如说,篡改和伪造数据。

直接在控制台输入对应的命令

技术图片

断点命令:

断点可以直接点击Fiddler下图箭头标注位置(点一下截获全部请求,点两下截获全部请求响应,点三下解除断点设置),控制台的断点的命令可以精确设置需要截获那些请求。

技术图片

技术图片

 篡改和伪造数据:

 

以上是关于Fiddler-断点(After Responses)+修改Get请求的返回值的主要内容,如果未能解决你的问题,请参考以下文章

Fiddler设置断点修改Request和Response

Fiddler设置断点

fiddler使用积累

抓包工具fiddler和 charles哪个好用

05_Fiddler的Script 脚本用法

fiddler