Fiddler 工具使用教程

Fiddler 工具介绍

Fiddler 是一款流行的 Web 调试代理工具,用于监控、分析和调试 HTTP/HTTPS 流量。它广泛用于 Web 开发、API 调试和安全测试。不支持直接捕获 TCP 层的连接。如果需要更底层的网络流量分析,可以使用 Wireshark 等其他工具。

Fiddler 支持以下操作系统

Windows: Fiddler 的主要版本是为 Windows 操作系统设计的,支持 Windows 7 及更高版本。
macOS: Fiddler 提供了一个适用于 macOS 的版本,称为 Fiddler Everywhere。
Linux: Fiddler Everywhere 也支持 Linux,但需要通过 Snap 或其他方式安装。

是否免费

Fiddler Classic: 这款 Windows 版本是免费的,用户可以无限制地使用其功能。
Fiddler Everywhere: 这款跨平台的版本提供了基本功能的免费使用,但某些高级功能可能需要订阅付费。

Fiddler 下载安装

1.下载
2.安装(无特殊配置,默认下一步)

Fiddler 原理

在这里插入图片描述

  1. 代理服务器

    Fiddler 作为一个代理服务器,位于客户端(如浏览器)和服务器之间。它通过拦截和转发 HTTP/HTTPS 请求和响应来进行流量分析。

  2. 流量捕获

    HTTP/HTTPS 请求: 当用户在浏览器中输入 URL 或执行 API 调用时,这些请求首先被发送到 Fiddler。
    请求转发: Fiddler 接收到请求后,会对其进行处理,然后将其转发到目标服务器。

  3. 请求和响应分析

    请求修改: 在转发请求之前,Fiddler 允许用户查看并修改请求的各种参数,如请求头、查询字符串和请求体。
    响应捕获: 当服务器响应请求时,Fiddler 会捕获响应,并允许用户分析响应内容,包括响应头和响应体。

  4. HTTPS 解密

    SSL/TLS 拦截: Fiddler 可以解密 HTTPS 流量。这是通过安装一个自签名证书来完成的,当浏览器与 Fiddler 通信时,它会信任这个证书,从而使 Fiddler 能够解密和查看加密的流量。
    解密过程: Fiddler 将 HTTPS 流量解密为 HTTP 流量,以便进行分析,然后将其重新加密并转发到目标服务器。

  5. 用户界面

    可视化展示: Fiddler 提供一个用户友好的界面,用户可以查看捕获的请求和响应,进行搜索和过滤,以及对请求进行断点调试。
    会话管理: 用户可以管理多个会话,查看请求的详细信息,分析性能和错误。

Fiddler 使用功能配置

弱网测试

工具栏Rules>Performance>Simulate Modem Speeds勾选表示开启弱网
在这里插入图片描述

打开Fiddler,点击菜单栏中的【Rules】-【Customize Rules】,如下图:
在这里插入图片描述
需要手动调节代理服务器的网速:

先打开选项卡(Customize Rules)或者右侧找到“FiddlerScript”,修改后保存即可
在这里插入图片描述
每上传1KB数据,延时300ms

每下载1KB数据,延时150ms

断点调试

Fiddler设置断点,可以修改HTTP请求头信息,如修改Cookie,User-Agent等
可以修改请求数据,拦截响应数据,修改响应体,如修改服务端返回的页面数据

断点的两种方式

1.before response:这个是打在request请求的时候,未到达服务器之前

2.after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。

全局断点

全局断点就是中断fiddler捕获的所有请求
点击rules-> automatic breakpoint ->before requests
在这里插入图片描述

找到需要修改的请求后,右侧点击编辑。修改之后点Run to Completion就能提交了,于是就成功修改了请求
在这里插入图片描述

备注:
打完断点后,会发现所有的请求都无法发出去了,这时候,点下Go按钮,就能走下一步了
在这里插入图片描述
打全局断点,是无法正常上网的,清除断点:rules-> automatic breakpoint ->disabled

单个断点

只想针对某个接口的请求地址,进行修改操作。
比如获取某个地址的请求,可以单独把这个请求放到Comper里面进行断点。
拦截和修改的步骤一致。双击会话请求,修改内容,再点击execute即可。

在这里插入图片描述
在这里插入图片描述

Fiddler 过滤器

Filters过滤器的作用,过滤出我们想要的请求,不需要的请求忽略掉。
在这里插入图片描述

说明:

Use Filters(使用过滤):勾选之后,过滤器才会生效。

Actions(指定行为):四个选项说明

Run Filterset now:使用当前的过滤规则。
load Filterset:加载(以前保存的)过滤规则。
Save Filterset:保存当前的过滤规则。
Help:会跳转到Fiddler帮助页面。

(1)Hosts:主机过滤

第一个下拉框是过滤局域网,第二个下拉框是过滤广域网。

局域网过滤:展示局域网内容

No Zone Filter:默认选项,不设置区域过滤器。
show only Intranet
Hosts:只显示内网的Hosts,即过滤掉外网的Hosts。此时,只显示URL请求目标服务器在内网的请求。
show only internet Hosts:与上相对应,只显示外网的Hosts。

广域网过滤:展示广域网内容
No Host Filter:默认选项,不设置过滤主机IP条件。
Hide the following Hosts:隐藏输入到下面文本框中的Hosts。
Show only the following Hosts:仅显示输入到下面文本框中的Hosts。
Flag the following Hosts:标识下边输入的主机名的会话(加粗)。

(2)Client Process:客户端进程过滤

是对客户端的进程进行过滤,通过配置只过滤/不过滤哪些进程的请求。(用的不多)

Show only traffic from:你可以指定只显示哪个Windows进程中的请求,右侧会列出当前所有的 Windows 进程。
Show only Internet Explorer traffic:只显示IE发出的请求。
Hide trafficfrom service host:隐藏来自service
host的请求。如果不勾选,会出现很多其他后台网络数据流。

(3)Request Headers :根据请求头信息进行过滤。

Show only if URL contains:仅显示URL中包含指定字符串的请求,字符串可以是URL中的一部分,多个字符串用空格分开。(多个表示“或”,即只要URL包含任一字符串,都会显示),也可以使用EXACT:前缀来限定大小写,或者使用REGEX:前缀正则表达式或完整的URL。
Hide if URL contains:仅隐藏URL中包含指定字符串的请求(字符串可以是URL中的一部分,多个用空格分开,可以是正则或完整的URL,同上)。
Flag requests with headers:标记带有特定header的请求,如果在web session列表中存在该请求,会加粗显示。
例如,我想突出显示header信息中带有token字段的URL请求,即可以勾选上这项,并在后面输入:token。
Delete request headers:删除请求中指定的Header字段。(在进行测试时非常有用,比如去掉URL中的token信息,判断服务器是否有做token校验)
Set request Header:在URL请求中添加头字段,与上一条对应。前面输入字段,后面输入值。

(4)Breakpionts:设置断点(少用)

Break request on Post:针对所有Post请求设置断点。
Break request on GET with query string:给所有带参数的 GET 请求设置断点。
Break on XMLHttpRequest:针对所有Ajax请求设置断点。
Break response on
Content-type:针对响应报文中header字段中,Content-Type属性匹配成功的请求设置断点。

(5)Response Status Code:响应状态码过滤(少用)

Hide success(2xx):隐藏响应状态码为2xx的URL请求,如:响应状态码为200的URL请求将隐藏掉。
Hide non-2xx:隐藏响应状态码不是2xx的URL请求。
Hide Authentication demands(401,407):隐藏认证(响应状态码为:401 407)的URL
请求。这些响应需要用户进一步确认证书,authentication demands是认证需求的意思。
Hide
redirects(300,301,302,303,307):隐藏重定向(响应状态码为:300,301,302,303,07)的URL请求。
Hide Not Modifield(304):隐藏不是缓存的状态码(304)的URL请求。
304是请求的资源从上次起没有发生变更返回的状态码。

(6)Response Type and Size :根据响应类型和报文大小进行过滤(少用)

Show all Content-Type:显示所有类型Content-Type的请求,Content-Type即为响应结果header信息中Content-Type字段。

Show only IMAGE/*:仅显示响应类型为图片的请求。

即响应header中Content-Type=IMAGE/的请求,*为通配符。

Show only HTML:仅显示响应类型为HTML的请求。

Show only TEXT/CSS:仅显示响应类型为text/css的请求。

Show only SCRIPTS:仅显示响应类型为Scripts的请求。

Show only XML:仅显示响应类型为XML的请求。

Show only JSON:仅显示响应类型为Json的请求。

Hide IMAGE/*:隐藏所有响应类型为图片的请求。

Hide smaller than:隐藏小于指定大小响应结果的请求。

大小可以在 Inpsectors 中响应结果部分的 Transformer 中查看。

Hide larger than:隐藏大于指定大小响应结果的请求。

Time HeatMap:时间的热图。

Block script files:阻止返回正常JS文件。如果响应是脚本文件,那么响应 404。

Block image files:阻止返回正常图片文件。如果响应是图片文件,那么响应 404。

Block SWF files:阻止返回正常SWF文件。如果响应是SWF 文件,那么响应 404。
swf(shock wave flash):是Macromedia(现已被ADOBE公司收购)公司的动画设计软件Flash的专用格式。

Block CSS files:阻止返回正常CSS文件。如果响应是 CSS 文件,那么响应 404。

提示:这个功能可以测试CSS、JS等加载失败的情况下页面的展示情况。

(7)Response Header:根据响应头信息进行过滤(少用)

Flag responses that set cookies:会话列表的响应中有cookies信息的加上标识(斜体)。
Flag responses with headers:会话列表里标记响应中带有特定header的请求(即加粗)。
Delete response headers:会话列表里删除响应信息中,有指定的Header字段的会话。
Set response header:在响应中添加header字段。
如添加Transfer-Encoding: chunked,前面填写Transfer-Encoding,后面填写chunked。

参考链接:https://blog.csdn.net/weixin_50829653/article/details/117922631

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值