3.1.3 Fiddler工具详细教程
Fiddler是什么
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
Fiddler作用---对测试人员而言
1、能够监听http/https的数据包,可以截获从浏览器或者客户端软件向服务器发送的http/https请求;
2、对截获之后的请求,我们还能够查看请求中的详细报文信息;
3、伪造请求。不仅可以伪造客户端的请求,还能够伪造服务器的响应。
4、测试网站的性能;
5、模拟弱网测试
6、提供第三方扩展插件,满足更多需求。
工作原理
界面及使用介绍
工具栏
(1)气泡:备注。添加之后在会话栏的Comment列中显示备注内容。
(2)Replay:回放【常用】。重播一个会话。快捷键:”选中会话+R”
(3)清除会话面板:过滤请求、清除请求。
(4)Go:断点调式。配合状态栏上的断点工具。功能类似Debug。
(5)Stream:代理模式。默认:缓冲模式。点击进行切换。
(6)Decode:解压请求。解压http请求里面的东西,帮助查看。传输数据获取的响应如果是乱码可以使用decode进行解压操作;
(7)Keep:指示fiddler的保持会话数目。
(8)Any Process:捕获请求,只看需要的请求。将“靶心”投向需要的请求。
(9)Find:查找请求。用颜色标注查找的请求。
(10)Save:保存会话。
(11)截图:默认5秒后截图。
(12)计时器:第一次点击-开始计时;第二次点击–返回计时结果;第三次点击-清零,重新计时。右键点击—不计时。
(13)Browse:启动浏览器;
(14)Clear Cache:清空缓存;
(15)TextWizard:【常用】编码、解码文本内容;
(16)Tearoff:浮窗。
Fiddler过滤功能
1.Actions:意思是动作的意思,也就是要做什么操作,里边包含有几个选项:
Run Filterset now :马上执行过滤
Load Filterset:加载本地过滤设置文件
Save Filterset :保存过滤条件到文件
2、Use Filters :是否使用过滤,只有在选择了这个选项以后才能修改下边的过滤条件,下边的过滤条件可以相互独立,也可以相互组合。
3、Hosts:
通过主机名来进行过滤。
No Zone Filter :不通过空间进行过滤,这个是分内网跟外网的
show only Intranet Hosts: 内网
show only internet Hosts:外网
No Host Filter :不通过主机名进行过滤
Hide the following Hosts:隐藏下边输入的主机名的请求
show only the following Hosts:显示下边输入的主机名的请求
flag the following Hosts:标志下边输入的要过来的主机名的请求;
例如下图输入www.baidu.com
蓝色加粗的就是过滤出来的包
4、Client Process
根据客户端进程来进行过滤,选中 show only traffic from ,然后就可以选择要过来哪个进程的会话
5、Request Headers:
Show only if URL contains 和 Hide if URL contains 使用方法类似功能相反。都是url中包含某些字符过滤,多种情况空格分隔。Hide if URL contains 可以简单理解为隐藏所有js请求,如下例子Show only if URL contains,是展示所有js请求:
6、Breakpoints:
(断点添加可以在工具栏中Rules中进行设置)
断点调试的步骤:
(1)当我们在这个里边设置了断点过滤,那么就会在相应的会话请求中插入断点。
例如下边我在get 请求中插入断点。那么可以发现在执行get 请求的会话是红色的图标。
这个时候如果你要对其中某一条进行断点调试的话,那么就双击,然后就会显示这样一个界面:
点击Break on Response 以后,你切换到下边的TextView选项卡里边,可以发现返回的数据,然后就可以进行修改了
7、Response Status Code:
响应码过滤,就是隐藏相应状态码的请求
过滤后如图:
8、Response Type and Size:
这部分是根据响应类型和大小的过滤:
Block script files:阻止脚本文件,显示为404;
Block image files:阻止图片文件;
Block SWF files:阻止SWF文件;
Block CSS files:阻止CSS文件;
Block的过滤是挺有意思,如果你选中了block css那么浏览器就加载不到css了。
结果如下图:
9、Response Headers:
是对response header的标志和修改。
Flag response that set cookies:标记会设置cookie的响应;
Flag response with headers:标记带有特定header的响应;
Delete response headers:删除响应header;
Set response header:设置响应的header;
Fiddler的弱网测试
fiddler设置弱网的文件是(rules-->customize rules):修改以下模拟网速的上传和下载速率
注意:如果使用fiddler模拟网速测试完毕后,一定要记得将其模拟网速的设置进行去掉,否则只要启动了fiddler,则网络一直弱网运行
Fiddler的数据篡改
在fiddler中的rules选择automatic breakpoints进行设置
-
在实际测试过程中,为了跳过前端页面的数据校验,可以使用fiddler进行设置断点从而实现数据的篡改操作;直接校验后端是否有进行数据的校验;
-
设置断点可以有两种方式:在请求前设置(before request)、在响应后设置(after response)
-
before request:在请求前设定断点,此时请求没有发送到服务器,所以可以实现数据的篡改,然后将篡改后的数据发送到服务器
-
after response:在响应后添加断点,一个响应可能是由多个http资源所构成,多个资源之间会有相应的联系,在设定断点,发送一个请求其多个响应实现的单步单个资源响应获取;
-
Fiddler的https包的数据抓取
因为https实际就是基于http协议上进行封装了一层SSL(实现传递数据过程中的部分加密处理)
-
1.选择fiddler中的options,选择https将下图的选项进行勾选
-
2.将fiddler的根证书进行导入到需要访问抓包的浏览器,当然如果当前可以抓取到相关https数据包,说明浏览器中已经存在证书,不需要导入;
-
3.如果需要将tunnel to相关的数据包请求信息进行隐藏的话则可以通过rules中设置hide connets(因为该部分数据包不需要进行分析)
AutoResponder
可用于拦截某一请求,进行如下操作:
1:重定向到本地的资源
2:使用fiddler的内置响应
3:自定义响应
注意:修改完内置响应后,需要对浏览器的缓存进行清除。
使用内置响应:
对CRM访问的地址进行跳转到百度地址: