一、Fiddler简介
Fiddler是目前最常用的http/https抓包工具之一,是位于客户端和服务器端的http代理,该抓包工具是web调式利器。
常用功能有:
查看分析请求的细节内容;监控浏览器所有的http/https流量;伪造客户端请求、服务器响应;解密https的web会话;测试网站的性能等等。
常见使用场景:
接口调试、接口测试、线上环境调试、web性能测试及分析,更具体而言,查前后端bug、开发环境hosts配置、mock、弱网断网测试。
二、Fiddler的下载及安装
1.进入官网:https://www.telerik.com/fiddler
2.选择“Download now”
3.根据需求,选择相应内容,再点击“Download for Windows”:
4.下载完成后,将“FiddlerSetup”保存到自己想要的路径。
5.双击“FiddlerSetup”该应用程序,选择“I Agree”同意各项条款说明:
6.将软件保存到自己想要的路径中,例如:C:\Fiddler,再点击“Install”
7.安装完成后,点击“Close”,则完成了基本的软件下载安装步骤:
8.打开Fiddler,界面大致如下图所示:
三、Fiddler常见使用方法
界面大致组成如下图所示:
1.Fiddler菜单栏
1.1 端口设置
步骤:
Tools–>Options–>Connections–>Fiddler listens on port–>OK–>重启Fiidler
注意:
(1)修改设置后,重启才会生效;
(2)端口号可在1024~65536范围内任意选取(不与其他端口冲突的前提下)。
1.2 导出会话
作用:
步骤:
File–>Export Sessions–>Select Sessions/All Sessions.
2.Fiddler工具条![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302171446298.png)
2.1添加会话备注
作用:便于测试复查或开发查看、理解会话内容。
步骤:方法一:选中某一/某几条会话–>点击备注图标–>即可添加会话备注;
方法二:
2.2重放会话
作用:通过Fiddler向服务器多次发送选中的请求。这既是重复会话工具,也可对服务器进行压力测试。
步骤:选中某一条或多条会话–>点击Replay
快捷键:
重复一次:选中某会话后–>按“R”键;
重复N次:选中某会话后–>按“Shift+R”键–>输入想要重复的次数。
2.3删除会话
作用:删除会话
步骤:
删除单个会话:选中–>点击移除图标;
快捷键:选中–>Delete;
删除多个会议:选中–>点击移除图标;
快捷键:选中–>Shift+Delete。
2.4 按键“Go”
作用:继续执行,通常与断点功能配套使用。
步骤:
step1:选中某请求会话
step2:状态栏处单击断点
(单点:请求前断点;双击:响应后断点;三击:取消断点)
step3:观察右侧报文信息,发现请求仅到达Fiddler但未达到服务器
step4:点击“Go”,即继续执行该请求,可见服务器响应“200 OK”。
以下14个工具条内容不是很常用,故不作详述,有兴趣可至官网自行研究。
2.5Stream:表示一种流模式,缓冲模式。
2.6Decode:解码。
2.7Keep Sessions:保存会话,会占用内存,故依据自己情况而定,一般不去勾选。
2.8Amy Process:选择监听的程序。
2.9Find:查找,查找内容可自行选择。快捷键:Ctrl+F。
2.10Save:保存会话,将选中的会话保存为一个后缀为.saz的归档文件。
2.11截图:会在倒计时后进行Fiddler软件页面的截图。
2.12计时器:emmm,暂且不知道有何用处。
2.13Browser:快捷打开浏览器。
2.14Clear Cache:清除缓存。
2.15TextWizard:编码解码,还有一些简单的加密功能,例如md5。
2.16TearOff:工具条与Fiddler界面分离(个人觉得不咋实用)。
2.17MSDNsearch:微软开发者的搜索框。
2.18Online:查看主机ip(同样,可通过cmd–>ipconfig,进行验证)。
3.Fiddler会话列表
Fiddler抓取到的每一条http请求,称为一个session。
每条session主要包含如下内容:
请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息。
3.1添加自定义会话备注列
步骤:
菜单栏中Rules–>Customize Rules–>FiddlerScript–>
Ctrl+F查找“static function Main()”字符串–>添加代码行
“FiddlerObject.UI.lvSession.AddBoundColumn(“ServerIP,120,”X-HostIP”);”–>File–>Save as CustomRules.js或者Save Script–>
重启Fiddler。
结果如下图:
会话列表中自定义列:列表白头第一行-右键-Customize Columns
4.Fiddler命令行和状态栏
4.1命令行
4.1.1help命令
作用:自动跳转到官方提供的常用命令文档
4.1.2 bpu命令
作用:针对选中的会话,设置断点
(1)bpu [keywords]
例如,命令行中输入:bpu baidu,则会将带有“baidu”关键词的所有请求都阻塞。若要取消这些阻塞,则再次在命令行中输入bpu。
(2)bpu after
4.1.3 ?[keywords]命令
作用:高亮所有含有keywordst的会话
4.1.4>size命令
作用:高亮所有大于size字节的会话
4.2状态栏
4.2.1代理开启/关闭
4.2.2进程选择![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302172855231.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pNUVN1bnNoaW5l,size_16,color_FFFFFF,t_70)
4.2.3断点设置(状态栏快捷设置)
点击一次,请求前断点,即请求从客户端到Fiddler,但未发到服务器;
点击两次,响应后断点,即响应从服务器到Fiddler,但未到客户端;
点击第三次,不在显示红色图标,则取消断点。
状态栏中,断点设置后两项分别为:会话数量和显示附加信息:
5.Fiddler辅助标签和工具![在这里插入图片描述](https://img-blog.csdnimg.cn/20200302172931556.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pNUVN1bnNoaW5l,size_16,color_FFFFFF,t_70)
5.1 Statistics
作用:统计。http请求的性能和其他数据分析,如DNS解析的时间,建立TCP/IP连接的时间消耗等信息。
5.2 Inspectors
作用:检查器。以多种形式展示请求报文和响应报文。用得较多的有:Raw,Cookies,JSON,XML。
5.3 AutoResponder
作用:自动响应器。适合Mock,比如:重定向到本地的资源,使用Fiddler的内置响应,自定义响应。
场景举例:生产环境有问题,可将请求拦截后,重定向到本地或指定/修改响应。
例如:本地保存图片1.png,某网页保存图片2.png的地址,
Rule Edit:修改内置相应或者Find
a file 也可以右键Edit Response
5.4 Composor设计器
设计请求用的,类似postman,简单的接口测试、发包工具(http请求数据包)。
接口测试可以发现黑盒(功能)测试中不能发现的问题,例如:发送请求时,报文信息中username=123456,请求依然可以发送;但是如果功能测试,在网页登陆时,用户名中输入123456,则请求根本无法到达服务器,一般js会进行控制限制。在这个场景中,则说明后端缺少对手机号码的正确校验。
5.5 Filters过滤器
请求的过滤与设置,它是一个多维度的过滤器。
勾选:Use Filter
主机过滤,进程过滤,请求头过滤,断点过滤,响应状态码过滤,相应类型及大小过滤。
四、Fiddler应用
1.断点应用
全局断点和局部断点
Rules-Automatic Breakpoints-Before Response/After
Request/取消断点,请求前断点/响应后断点/取消断点,这三种模式都可以在Fiddler底部直接单点设置。
截获请求,可做一些极端测试。模拟网络中断。
命令行设置局部断点:请求前断点:Bpu;
使用方法:
设置:bpu login
取消:bpu
响应后断点:Bpafter
使用方法:
设置:bpafter login
取消:bpafter
2.弱网测试应用
Step1:设置延迟时间:Rules-Customize
Rules-Fiddler ScriptEditor-ctrl+F-m_SimulateModem-可看到设置的延迟时间
Step2:生效:Rules-Performance-Simulate
Moderm Speed
3.HTTPS抓包应用
预备小知识:
https是加密的http,带有证书,相当于http+SSL+TLS。
【针对IE/Google浏览器】
step1:确认证书存在:Actions-Windows。。。-查找证书-包含:Fiddler-即可看到相关证书是否存在。其中,重置所有证书:Actions-Reset All Certificates
step2:设置允许抓取https包:Tools->Fiddler Options->HTTPS->勾选Decrypt HTTPS Traffic
【针对firefox浏览器】
自行管理自己的证书。这个不想写了。
4.ios设备中APP抓包应用
step1:手机、本机主机连接到同一局域网;
step2:ios设备设置:无线局域网-配置代理-手动-服务器:192.168.xxx,1,端口:8888;
step3:Fiddler软件设置:Options-Connections-勾选Allow remote caputures to connect;
step4:重启Fiddler后即可进行app抓包。