Fiddler软件的使用

Fiddler软件的使用

文章目录

前言简介工作原理Fiddler界面主界面工具栏会话列表自动响应器(AutoResponder)案例一:图片重定向案例二:URL重定向案例三:本地调试js文件案例四:模拟Mock接口测试

Fiddler设置过滤Fiddler模拟请求断点案例一: 修改请求数据案例二:修改响应数据

弱网测试Fiddler配置并监听Https请求(配置完后记得要重启Fiddler).HTTPS证书导出HTTPS证书手动导入

移动端抓包配置参考目录

前言

阅读本文前请注意最后编辑时间,文章内容可能与目前最新的技术发展情况相去甚远。欢迎各位评论与私信,指出错误或是进行交流等。

简介

Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的请求,分析请求数据、设置断点、修改请求的数据、修改服务器返回的数据,功能非常强大。 官方文档:https://docs.telerik.com/fiddler-everywhere/introduction Fiddler相关的中文博客网站:https://www.fiddler.net.cn/

下载地址:http://www.telerik.com/download/fiddler 下载完成后双击安装包FiddlerSetup.exe,如下图 点击I Agree按钮,然后选择你想要的安装目录,如果不需要修改,使用默认的即可。 Fiddler安装注意事项:不要安装在有中文和特殊字符的目录 点击Install按钮,等待一会时间后即可安装成功。

安装成功后点击关闭按钮,安装路径下多出一个Fiddler目录,运行fiddler.exe。

工作原理

Fiddler介于客户端和服务器之间,以代理web服务器的形式工作。客户端发起的所有请求以及接收到的响应,Fiddler都能够监听到。默认使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,不过如果Fiddler非正常退出,这时候Fiddler可能没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

Fiddler界面

会话的概念:一次请求和一次响应就是一个会话。

主界面

工具栏

给选中的会话添加备注信息(在会话列表中的comment列查看备注信息)重新发送该请求删除会话选项放行,和断点对应,后面详细讲解流模式。当Fiddler拿到远程的response后是缓存起来一次响应给客户端(默认),stream模式是直接响应。解码。有些响应体是被编码的,点击这个按钮后可以根据响应的编码格式自动解码。查找会话。保存会话。截屏。截屏后,会以会话的方式返回一个截图。

会话列表

会话列表属性说明 点击某一个请求,查看请求头和请求体 如果觉得会话列表中会话数量太多,影响查看,或者想去掉不需要查看的会话。可以在选中会话后,按 del 删除。 有需要 可以清除全部会话,点击Remove all 或者 在命令行中运行 cls命令。 或者根据一些情况删除会话,参考以下表格:删除该栏图标说明

自动响应器(AutoResponder)

Fiddler的AutoResponder功能 ,是将HTTP请求拦截下来,重定向到本地文件或者指定响应结果,实现自动重定向的功能。 不管我们做URL重定向,还是做Mock测试、本地js调试等,都可以通过该功能进行实践。

该部分内容参考:https://blog.csdn.net/m0_59868866/article/details/125206743

AutoResponder面板如下图: 界面说明 (1)

Enable rules:启用规则。勾选此选项,自动响应器才会激活。Unmatched requests passthrough:没有匹配到的请求予以通过。 建议开启,没开启时,规则匹配外的请求将失败,报HTTP 404错误。 说明:如果不勾选此选项,抓包的时候,会返回下文

[Fiddler] The Fiddler AutoResponder is enabled, but this request did not match any of the listed rules. Because the "Unmatched requests passthrough" option on the AutoResponder tab is not enabled, this HTTP/404 response has been generated.

意思是:Fiddler的自动响应器激活了,但是请求没匹配到任何列表中的规则。而且因为跳过非匹配请求选项没有激活,所以产生了http/404返回结果。

(2)

Add rule:添加规则,点击此按钮则,会在规则框里插入一条新的规则。import:支持导入之前捕获的.saz文件。Group:对列表中所创建的规则进行分组。 在列表中选中一些规则,点击Group按钮,就会把这些规则进行单独分组, 选中需要合并的组,点击Ungroup,就可以进行解组。

(3) 第一行:填写要匹配劫持的地址。 第二行:是设置返回。点开下拉,会看到很多Fiddler自带的返回值类型。 即:就是劫持后真正要访问的地址,或者返回的结果 还可以是本地的图片/JS脚本地址/其他URL地址。

案例一:图片重定向

步骤1:获取要截获的请求 打开Fiddler,访问网址,抓取到主页图片的请求,并将其拖动到AutoResponder窗口中。 或者在AutoResponder窗口点击Add Rule添加一个拦截规则。

步骤2:编辑拦截规则 Rule Editor第一个下拉框可以设置重定向请求的规则,将请求拖动到该窗口,会自动出现。 如果是点击Add Rule添加拦截规则,需要手动输入。 第二个下拉框可设置重定向内容。 点击改下拉框,选择最后一项Find a file…,然后选择一张本地图片,点击右侧Save按钮。 步骤3:重新访问主页链接 重新访问首页链接,发现图片已经替换。 若发现没有替换,可能是浏览器缓存问题,可以去缓存刷新或者清空缓存后再次访问即可。(CRTL+F5)

案例二:URL重定向

以访问某网站首页为例,设置访问首页时,重定向到京东首页。

设置规则如下: 步骤1:点击Add Rule添加一个新规则。 步骤2:修改新增规则的拦截地址和重定向地址。 步骤3:访问首页链接,进行了地址的重定向。 输入的是首页地址,返回来的是京东首页。

案例三:本地调试js文件

以访问某网页首页为例,设置访问首页时,调用本地的js文件,效果为页面有弹框弹出。

步骤1:访问首页,用Fiddler抓取请求首页的会话。

步骤2:选择访问该首页产生的会话中,返回结果是一个js文件的请求,我们把内容复制下来保存到本地 可自由命名。(也可以替换成本地已有的JS文件,这里复制返回的JS文件仅作演示)

步骤3:在保存到本地的js文件中最上方,添加一条代码alert(1)。

步骤4:设置规则如下: 把该请求拖拽到AutoResponder面板的规则栏中。 编辑规则,让该请求访问本地的js文件 步骤5:再次进行首页访问,查看结果。 结果页面弹出了alert窗口,说明请求最终访问了本地的1.js文件。

案例四:模拟Mock接口测试

当我们需要测试一个接口,可该接口还没有被开发人员实现,这个时候我们就可以通过Fiddler进行Mock模拟测试。

步骤1:根据接口文档,把该接口的请求,添加到拦截规则中。 选择目标请求,点击 Add Rule,配置匹配条件,如 URL。或者拖动进来

步骤2:根据接口文档对该接口的返回描述,自行编写返回数据。 可以在Rule Editor第二行中,选择本地的 Mock 数据文件(如 JSON、HTML 文件)。 或者直接在规则中选择 Edit Response…,编辑响应内容。

根据接口文档对该接口的返回描述,编写返回数据,如下:

HTTP/1.1 200 OK

Server: nginx/1.4.2

Date: Sat, 23 Jan 2021 18:11:41 GMT

Content-Type: application/json;charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

53

{"success":false,"message":"该手机号没有注册","content":null,"object":null}

然后保存规则,重新访问即可。

Fiddler设置过滤

Fiddler过滤指定域名: 下拉框[-No Host Filter-]选择[Show Only The Following Hosts]只显示过滤的域名。 如只监控百度,在下面的输入框里填上:http://www.baidu.com

只展示URL包含了某内容的请求: 勾选 show only if url contains 随后输入内容

其余的内容不作详细介绍,基本上可以望文知意。

Fiddler模拟请求

断点

Before Requests(请求发送前断点):在请求发送给服务器之前 由Fiddler拦截下来 After Response(服务器响应后断点):服务器响应后,在发送给客户端之前 由Fiddler拦截下来 如果点击工具栏中的Go按钮,则可跳过断点 使得请求继续执行。

案例一: 修改请求数据

步骤: 第一步:设置Fiddler在请求发送之前拦截请求 菜单栏:Rules -> Automatic Breakpoints -> Before Requests

第二步:在浏览器中提交表单(第一步配置了的话,这里的表单数据不会立即提交,请求会被Fiddler拦截)

第三步:找到被Fiddler拦截的请求并在Fiddler中修改请求的数据 找到对应的HTTP请求(这个时候该请求被Fiddler拦截了,还没发送到服务器,如果我们点击了工具栏里的Go,则会将请求发送出去,也就跳过了该请求前断点) 修改请求数据并提交请求 从提交到系统内的数据看,是修改过后的数据(仅作演示)

案例二:修改响应数据

第一步:设置响应断点 Rules -> Automatic BreakPoints -> After Response

以访问某网站为例,有一个登陆窗口,如下:

填写用户名=18888888888,密码=123456,并发送请求。

第二步:访问网页并在Fiddler中找到会话 我们把返回数据的message信息改成“登陆成功”,然后点击Run to Completion继续完成请求。

请求完成之后,我们进入到Inspectors界面中,查看请求的实际返回数据。 如上图所示,说明请求返回数据的内容,被成功修改了。

弱网测试

Fiddler可以用来模拟低速网络环境,做弱网测试。 原理:客户端请求、响应的数据都会通过Fiddler。因此,可以通过延迟发送数据或接收数据来限制网络的上传速度和下载速度,从而达到限速的效果。

启用步骤: Rules -> Performance -> Simulate Modem Speeds

如果相对延迟进行自定义: Rules -> Cutomize Rules 打开 CustomRules.js 文档

判断 m_SimulateModem 是否为 true,也就是是否设置了弱网模式。

如果为弱网,那么上传的网速为 300ms/KB,下载的网速为 150ms/KB

想要多快的网速,可以在这里计算并更改。

Fiddler配置并监听Https请求(配置完后记得要重启Fiddler).

Fiddler刚下载安装好后,是默认不支持抓取HTTPS协议的。

1.打开Fiddler Tool->Fiddler Options->HTTPS 。

2.选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate

另外,如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。

证书安装提示: DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。 这样Fiddler证书就已经添加成功了。 证书查看与管理,Actions—>open windows certificate Manager

HTTPS证书导出

打开Fiddler Tool->Fiddler Options->HTTPS ->Actions -> Export Root Certificate to Desktop

HTTPS证书手动导入

我们可以在浏览器上手动导入证书(上面这个文件),以谷歌浏览器为例:点击设置-安全和隐私设置-安全-管理证书:

移动端抓包配置

步骤一:Tools–>Fiddler Options->Connections 并勾选 Allow remote computers to connect,点击OK。重启Fiddler (此处,我们看到Fiddler的监听端口是可修改的)

步骤二:确认电脑和手机连接同一局域网

步骤三:查看电脑IP并设置手机WIFI的HTTP代理,按下 Win + R,输入 cmd 回车,在命令提示符中输入 ipconfig,查找“IPv4 地址”即可。 步骤四:手机设置代理

打开你的手机,找到你所连接的WIFI,然后在代理一栏选择手动(按钮具体位置根据手机而定),再将你先前查看的电脑IP地址和端口号输入进去,然后保存。设置完后,相当于将电脑设置为手机的上网代理。手机上发送的HTTP请求和接收到的HTTP响应,都要经过电脑。自然也会经过电脑上运行着的Fiddler,所以 我们可以在Fiddler上查看手机发送的请求和接收到的响应详情。

步骤五:手机证书安装

在手机浏览器一栏输入电脑的IP地址和端口号,会进入一个网页,点击FiddlerRoot certificate下载证书。

下载成功后在设置里面安装,安装步骤:打开高级设置->安全->从SD卡安装证书->找到证书文件->点击后为证书命名->点击确定即可安装成功 (具体过程请根据实际机型百度查找,关键词是从SD卡安装证书)

参考目录

https://www.bilibili.com/video/BV1c4411c7zH https://www.bilibili.com/video/BV1rz4y1d7iZ https://www.bilibili.com/video/BV1RK421b773 https://www.bilibili.com/video/BV1hsc8ewEQC https://www.bilibili.com/video/BV1SUDhYMEu2 https://blog.csdn.net/qq_22803691/article/details/104243501 https://blog.csdn.net/weixin_46806288/article/details/124320597 https://blog.csdn.net/ychgyyn/article/details/82154433 https://blog.csdn.net/Mubei1314/article/details/122389950 https://blog.csdn.net/m0_53918927/article/details/118704402 https://blog.csdn.net/qwer9478/article/details/100164634 https://blog.csdn.net/nidongla/article/details/117880813

相关推荐

配置隐藏计算机磁盘,这2种隐藏硬盘的方法 你绝对想不到!
365bet亚洲版体育在线

配置隐藏计算机磁盘,这2种隐藏硬盘的方法 你绝对想不到!

📅 07-07 👁️ 1739
暴风魔镜S1试用测评:VR眼镜中的战斗机
365bet线上娱乐

暴风魔镜S1试用测评:VR眼镜中的战斗机

📅 07-07 👁️ 3562
chrome无法上网,但是其他浏览器却有网络
365bet线上娱乐

chrome无法上网,但是其他浏览器却有网络

📅 06-29 👁️ 4535