13、Fiddler工具的作用和常用使用场景

目录
1、Fiddler工具的作用和常用使用场景
2、Fiddler工具的工作原理是什么?
3、Fiddler抓取HTTPS包
4、想抓取一些特定的页面相关请求
5、一些快速命令的使用,cls/select/?等
6、设置severIP
7、设置访问IP
8、APP抓包,电脑端和IOS手机配置
9、利用Fiddler拦截接口请求并篡改数据,修改请求request的数据,可任意找url链接验证
10、利用Fiddler拦截接口请求并篡改数据,修改返回response的数据,可任意找url链接验证
11、利用autoResponder【重定向功能】将服务器的返回数据(即原资源)重定向到本地的文件,进行调试
12、利用autoResponder【重定向功能】也可修改返回response的数据
13、模拟接口测试
14、fiddler与浏览器上直接输入F12的区别?
15、当某个网站的请求都被拦截了,怎么恢复?

 

1、Fiddler工具的作用和常用使用场景

Fiddler是一款常见的抓包分析工具,可详细的对HTTP 请求进行分析,并模拟对应的HTTP请求

作用:

1)查看本机IP

2)模拟限速操作

3)篡改数据

4)重定向功能

5)发送自定义请求,模拟小型接口测试

6)App抓包

常用场景:

1)查看本机IP

2)辅助定位bug--抓取协议包,前后端联调

3)APP弱网模拟测试--弱网、断网、404、502、超时

4)前端性能分析及优化

5)API接口测试

6)构建模拟测试场景--数据篡改、重定向

①解析请求

>>>解析http请求状态,请求头、请求正文、返回头、返回正文等

②修改请求返回数据

>>>设置断点修改发出的请求数据,或修改请求返回的数据

③重定向请求

>>>替换远程文件,调试线上js/css文件

④构造请求

>>>构造请求发送数据,测试网站安全性

2、Fiddler工具的工作原理是什么?

1.本地应用与服务器之间所有的Request 和Response都将经过Fiddler,由Fiddler进行转发,此时Fiddler以代理服务器的方式存在。

2.由于所有的网络数据都会经过Fiddler,因此Fiddler能够截获这些数据,实现网络数据的抓包

3.详细见图片说明

 day3.png

首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。


第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。


第二步, fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器, 客户端浏览器做跟fiddler一样的事。


第三步, 客户端浏览器生成https通信用的对称密钥, 用fiddler伪造的证书公钥加密后传递给服务器, 被fiddler截获。


第四步, fiddler将截获的密文用自己伪造证书的私钥解开, 获得https通信用的对称密钥。


第五步, fiddler将对称密钥用服务器证书公钥加密传递给服务器, 服务器用私钥解开后建立信任, 握手完成, 用对称密钥加密消息, 开始通信。


第六步, fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端浏览器。


第七步, 客户端向服务器发送消息, 用对称密钥加密, 被fidller截获后, 解密获得明文。


由于fiddler一直拥有通信用对称密钥, 所以在整个https通信过程中信息对其透明。

3、Fiddler抓取HTTPS包

以chrome浏览器工具为例,不同浏览器可能存在部分差异

1、设置fiddler工具

2、信任证书

-------------------------------------------------------------------------------

1、设置fiddler工具

 day4_1.png

2、信任证书

 day4_2.png

一路点击是,则完成了证书的信任,查看证书,可以找到DO_NOT_TRUST_FiddlerRoot,则代表成功。

 day4_3.png

访问https://www.baidu.com 网站,检查fiddler中有无相关记录

 day4_4.png

4、想抓取一些特定的页面相关请求

因为fiddler工具是抓取全部的http请求,比如分别访问了百度/网易/腾讯的网页,但只想在工具上显示百度的相关请求?

设置过滤器:

5、一些快速命令的使用,cls/select/?等

1)命令输入位置:

 2)命令类型

① ?字符串,?sometext 。当您键入一些字符串,如sometext ,Fiddler将突出会话所在的URL中包含sometext的请求 。此时按Enter键将高亮选中所有匹配的会话

 ②<size,如<50k 。选择请求响应大小小于size字节的会话

>size,如>50k 。选择请求响应大小大于size字节的会话

=status、  =method,如=200、=301(重定向响应)或=post 。选择响应状态=status 或请求方法=method的会话

@host,如 @baidu.com  。  选择会话中域名包含host的会话,此时按Enter键可高亮所有匹配的结果

⑥bold , 如:预先设置会话加粗:标记任何URL包含了目标字符串的后续请求

cls or clear,清空会话列表

g or go,恢复所有设置断点的会话

quit,退出Fiddler

bpafter+域名,如bpafter baidu(输入bpafter解除断点)。设置中断RequestURI中包含指定字符串的任何响应

>>>tip:再次输入bpafter取消设置

bpu,如:bpu baidu(输入bpu解除断点)。对包含指定字符串的URI创建请求断点。设置此命令将清除该命令的任何以前的值,不带参数调用它会禁用断点

6、设置severIP

由于web前端在多个环境中开发,需要经常更换host,怎么检查访问的域名时指向哪个服务器IP的时,可通过对抓包工具Fiddler的设置,让请求显示服务器IP信息

1.菜单->Rules->Customize Rules

2.在CustomRules.js文件里Ctrl+F查找字符串 static function Main()后添加一行FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");代码后,重启fiddler之后就可见Server IP了 

day8_2.png

7、设置访问IP

多语言验证时,需要模拟不同的IP下访问页面查看web页面的简繁英页面显示有无问题,可通过fiddler工具的设置,模拟不同的IP

 1.菜单->Rules->Customize Rules 

2.在CustomRules.js文件里Ctrl+F查找字符串 OnBeforeRequest后,按照截图所示的格式进行添加,需要模拟哪个地区的IP的话,比如想模拟香港地区的IP,则按照如下格式填写任意一个香港地区的IP,然后去掉前面的//之后,此时访问页面就相当于用香港地区

的IP再访问了

 

 day9_2.png

8、APP抓包,电脑端和IOS手机配置

测试对象是APP的时候,同样也想对其进行抓包分析,此时电脑端该怎么设置?

 1.查看电脑的IP,cmd中输入ipconfig查看IPV4

 day11_1.png

2.fiddler工具上按照截图所示进行设置

 day11_2.png

3.检查fiddler进程是否正常监听8888端口,cmd中输入netstat -ano|findstr "8888"

 day11_3.png

4.有截图所示的结果的话,代表成功。如果没有的话,可能8888端口已被其他应用占用,可选择在fiddler里面换个端口即可。

PS.设置完成后,记得重启fiddler

测试对象是APP的时候,同样也想对其进行抓包分析,此时手机该怎么设置?

1.safari浏览器中输入电脑IP【0811中获取到IPV4地址】:8888,如:192.158.xx.xx:8888,下载证书后,进行安装

 day12_1.png

2.信任证书,在苹果手机的这两个入口分别点击信任证书

 day12_2.png

day12_3.png

3.iOS手机上按照如下方式进行配置后,在手机上访问一些页面,可在fiddler工具上看见相应的内容

 day12_4.png

4.安卓手机选择要连接的 wifi ,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”

 day13_1.png

9、利用Fiddler拦截接口请求并篡改数据,修改请求request的数据,可任意找url链接验证

 以百度链接为例 1.首先回忆下day7中说的输入快速命令的方法,输入bpu 待拦截的接口的网址或域名(断点),此处填写day14_1.png,填写完成后按enter键

2.浏览器中访问登录的网址 https://www.baidu.com/ ,查询武汉的相关信息,可在fiddler中看见如下内容 day14_2.png

3.修改截图所示修改相关的值

 day14_3.png

4.查看返回结果

 day14_4.png

day14_5.png 

至此,完成修改请求request中的数据

PS.想取消断点的话,可在快捷输入框内输入bpu后,按enter后即可取消打断点

10、利用Fiddler拦截接口请求并篡改数据,修改返回response的数据,可任意找url链接验证

以百度链接为例 1.输入bpafter 待拦截的接口的网址或域名,此处填写day15_1.png,填写完成后按enter键

2.浏览器中访问登录的网址 https://www.mtc.baidu.com/ 可在fiddler中看见如下内容 day15_2.png

3.按照截图所示修改返回的内容

 day15_3.png

4.查看页面结果,修改已成功

 day15_4.png

至此,完成修改返回response中的数据

PS.想取消断点的话,可在快捷输入框内输入bpafter后,按enter后即可取消打断点

11、利用autoResponder【重定向功能】将服务器的返回数据(即原资源)重定向到本地的文件,进行调试

 1.按照截图所示,分别将3个选购全部勾选,勾选完成后,将待重定向的网址直接拖到右方【手动填写完整地址/正则表达式进行模糊匹配的地址】即可 day16_1.png

2.填写要替换的内容,下拉框有很多选项可以选择, 比如201、302、404,502等status code day16_2.png

3.设置完成之后,刷新百度网页,请求回来的数据已经是替换后的内容了 day16_3.png

PS.想取消的话,直接将第1步中勾选的Enable rules去掉即可

12、利用autoResponder【重定向功能】也可修改返回response的数据

1.访问百度首页,按照截图所示复制返回的内容 day17_1.png

2.将txt按照截图的方式进行保存

 day17_2.png

3.按照0816的方式的第2步的方式在fiddler中进行设置,选择替换的文件可按照截图的方式进行选择

 day17_3.png

4.访问百度首页,此时网页显示如下 day17_4.png

PS.想取消的话,直接将第1步中勾选的Enable rules去掉即可

13、模拟接口测试

模拟一个小型/简易的接口测试工具,借助fiddler上的Composer可填写可以填接口地址,设置请求参数、填写响应结果后execute后,相当于模拟一个简易的接口测试工具

 1.选取csdn的登录网址,访问https://passport.csdn.net/ 网站,抓取到登录的请求后,按照截图所示进行配置【右边页面的数据中可根据需求进行任意修改,达到模拟接口测试工具的目的】 day18_1.png

2.执行完之后,再次查看http请求,接口直接报错

 day18_2.png

14、fiddler与浏览器上直接输入F12的区别?

相同点:均可以对HTTP请求进行分析

不同点:

1.F12无法抓包APP端的HTTP请求,而Fiddler工具可完成

2.F12无法修改篡改请求的数据,而Fiddler工具可完成

3.F12中可在Console中输入部分指令,方便查看前端数据,可通过Application上方便查看一些请求的一些数据,尤其涉及到登录或者邀请相关的知识

15、当某个网站的请求都被拦截了,怎么恢复?

可查看是哪些域名下网页被拦截了,可在快速命令行中输入bpu后,再点击enter后,即可恢复相关网站的访问

若有侵权行为,请联系删除

原文地址:https://www.cnblogs.com/sulanyuan/p/13395855.html