抓包工具之fiddler

一 、Fiddler简介

1、 简介

Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

2、 功能

        1、能够监听http/httpS的流量,可以截获从浏览器或者客户端软件向服务器发送的http/https请求;

        2、对截获之后的请求,我们还能够查看请求中的内容;

        3、伪造请求。不仅可以伪造客户端的请求,还能够伪造服务器的响应。——该功能能够方便我们进行前后端的调式。

        4、测试网站的性能;

        5、解密https的外部会话。因为https本身是一种加密的协议,通过fiddle我们可以进行解密操作;

        6、提供第三方扩展插件,满足更多需求。

3、 Fiddler工作原理

抓包工具之fiddler_第1张图片

二、 Fiddler界面介绍

抓包工具之fiddler_第2张图片

Fiddler界面从上到下分为:菜单栏、工具栏、回话列表、功能页签、命令行,状态栏六大板块

file capturing = F12 = 左下角capturing

三、 菜单栏

1、File菜单

        1、Capture Traffic:可以控制是否把Fiddler注册为系统代理。

        2、New Viewer:打开一个新的fiddler窗口

        3、Load Archive:用于重新加载之前捕获的以SAZ文件格式保存的数据包。

        4、Save:支持以多种方式把数据包保存到文件中。

        5、Import Sessions...:支持导入从其他工具捕获的数据包,也支持导入以其他格式存储的数据包。

        6、Export Sessions...:把Fiddler捕捉到的回话以多种文件格式保存。

        7、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler

2、 Edit菜单

        1、Copy:复制会话。

        2、Remove:删除会话。

        3、Select All:选择所有会话。

        4、Undelete:撤销删除会话。

        5、Paste as Session把剪贴板上的内容粘贴成一个或多个模拟的会话。

        6、Mark:选择一种颜色标记选中会话。

        7、Unlock for Editing 解锁会话。

        8、Find Session...打开Find Session窗口,搜索捕获到的数据包。

3、Rules菜单

        1、Hide Image Request:隐藏图片回话。

        2、Hide CONNECTS:隐藏连接通道回话。

        3、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。Ignore Image触发器控制这些断点是否作用于图片请求。

        4、Customize Rules...:打开Fiddler脚本编辑窗口。

        5、Require Proxy Authentication:,要求客户端安装证书。该规则可以用于测试HTTP客户端,确保所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。

        6、Apply GZIP Encoding:只要请求包含具有gzip标识的Accept-Encoding请求头,就会对所有响应使用GZIP HTTP进行压缩(图片请求除外)。

        7、Remove All Encoding:删除所有请求和响应的HTTP内容编码和传输编码

        8、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的所有回话。

        9、Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送。

        10、User-Agents:把所有请求的User-Agent请求头设置或替换成指定值。

        11、performance:模拟弱网测试速度。

4、 Tools菜单

        1、Options...:打开Fiddler选项窗口。

        2、WinINET Options...打开IE的Internet属性窗口

        3、Clear WinINET Cache:清空IE和其他应用中所使用的WinINET缓存中的所有文件。

        4、Clear WinINET Cookies:清空IE和其他应用中所发送的WinINET Cookie

        5、TextWizard...:选项会启动TextWizard窗口,对文本进行编码和解码。

        6、Compare Session:比较回话。

        7、Reset Script:重置Fiddler脚本。

        8、Sandbox:打开http://webdbg.com/sandbox/

        9、View IE Cache:打开IE缓存窗口。

5、 View菜单

抓包工具之fiddler_第3张图片

四、工具栏

1.备注功能

2.重新发送请求,快捷键:R键。

3.删除请求

4.当有请求前断点时,点击去发送请求。

5.流模式。(默认是缓冲模式)

6.解码

7.保持回话的数量。

8.选择你想要抓包或者监听的程序

9.查找

10.保存所有会话,文件名以.saz为扩展名

11.截图

12.计时器

13.快捷的打开IE浏览器

14.清除IE缓存

15.文本的编码解码工具

16.分离面板

17.MSDN查询

18.本机的信息

五、 会话列表

抓包工具之fiddler_第4张图片

1.请求的ID编号

2.http响应状态码

3.会话使用的协议

4.请求发送到的服务器主机名

5.数据包在服务器中的路径和文件

6.响应body的字节数

7.响应头信息Cache-Control的值

8、响应头信息Content-Type的值

9.发起请求的本地windows进程

10.注释

11.自定义备注

六、功能页签

1、 Statistics页签

通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行速度性能优化。

2、 inspectors页签(常用页签)

它提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求展示,下部分为响应展示。

3、 AutoResponse页签(常用页签)

它可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件作为返回内容。

4、 composer页签常用页签)

支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。

5、 FiddlerScripts页签

打开Fiddler脚本编辑。

log页签:

打印日志

6、Filters页签(常用页签)

过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。

7、 Timeline页签

时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为X轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline 便会显示指定内容从服务端传输到客户端的时间。

8、 命令行

help    打开官方的使用页面介绍,所有的命令都会列出来。

cls      清屏 (Ctrl+x 也可以清屏)

select    选择所有相应类型的回话(如select image或select css)。

?sometext 查找字符串并高亮显示查找到的会话。

size    选择请求响应大小小于size字节的会话。

=status/=method/@host 查找状态、方法、主机相对应的会话

1uit      退出fiddler

bpafter xxx 中断URL包含指定字符的全部回话响应

bps xxx    中断HTTP响应状态为指定字符的全部回话响应。

bpv xxx    中断指定请求方式的全部回话响应

bpm xxx    中断指定请求方式的全部回话响应。等同于bpv xxx

bpu xxx:    与bpafter类似。

七、状态栏

1、显示的Fiddler是否处于捕捉状态(开启/关闭状态),可以点击该区域切换

2、显示当前捕捉哪些进程。

All Processes 捕获所有进程的请求

Web Browsers  捕获 Web 浏览器的请求,应该特指 IE

Non-Browser  捕获非 Web 浏览器的请求

Hide All      隐藏所有请求

3、显示当前断点设置状态,通过鼠标点击切换。有三种:

不设置断点

所有请求在断点处被暂停

所有响应在断点处被暂停

4,显示当前共捕获了多少回话(如:300,表示共捕获了300个会话,如:10/300,表示当前选择10个会话,共捕获300个会话)。

5,第五区块,描述当前状态。

如果是刚打开Fiddler,会显示什么时间加载了CustomRules.js;如果选择了一个会话,会显示该会话的URL;如果在命令行输入一个命令,就会显示命令相关信息。

八、 web抓包

我们双击打开软件,进入到如下的一个界面,然后点击某一个请求,你会发现请求的内容是一堆明显不对的文字,然后该请求的左边是一个锁的样式,联想到https加密,你会发现原因可能是没有配置Fiddler。然后解释一下右边的默认返回内容,第一句是“这是一个CONNECT隧道,加密的HTTPS流量通过该隧道流动。”,就证实了我们的猜测,果然是因为https加密的原因。

抓包工具之fiddler_第5张图片

那么如何配置FIddler来解析这些加密的请求呢?

方法一:是查官网的安装文档,

方法二:看提示,软件公司还是很人性化的在返回内容里面提示了需要在哪里设置,就是第二行那一句:enable the Tools > Options > HTTPS > Decrypt HTTPS traffic option.

我们按照提示来进行设置,先在左上角的工具栏里面找到Tools,然后依次选择Options、HTTPS ,然后勾选Decrypt HTTPS traffic选项,勾选后安装证书。

抓包工具之fiddler_第6张图片

安装证书两种方法:

勾选后点击右边的Actions按钮选择“Trust Root Certificate”选项,然后全部选择是就行了。

勾选后点击右边的Actions按钮选择第二个选项将证书导出到桌面,然后再在对应的浏览器里面添加即可。

然后我们再打开一个新的网页(例如百度),查看请求

至此,已经可以监听PC端浏览器的请求了。

九、 移动端抓包

首先你的Fiddler所在的电脑和手机必须处在同一个局域网内(即连着同一个路由器)。

查看你的本机IP地址,在Fiddler的右上角有一个Online按钮,点击一下会显示你的IP信息

配置连接信息:Tools > Options >Connections

端口默认是8888,你可以进行修改。

勾选Allow remote computers to connect选项,然后重启Fiddler,再次打开时会弹出一个信息,选择ok即可。

抓包工具之fiddler_第7张图片

打开你的手机,找到你所连接的WIFI,长按选择修改网络,输入密码后往下拖动,然后勾选显示高级选项,然后在代理一栏选择手动,再将你先前查看的IP地址和端口号输入进去,然后保存。

抓包工具之fiddler_第8张图片

最后安装手机证书,在手机浏览器一栏输入电脑的IP地址和端口号

这里我是192.168.1.157:8888

进入一个网页,点击最下面那个FiddlerRoot certificate下载证书,下载成功后在设置里面安装,安装步骤:打开高级设置->安全->从SD卡安装证书->找到证书文件->点击后为证书命名点击确定即可安装成功

测试一下,比如在手机上打开抖音app,找到评论的那一个请求。

抓包工具之fiddler_第9张图片

可以看到我们已经成功的找到了评论所对应的那个请求

你可能感兴趣的:(软件测试干货,fiddler,前端,测试工具)