『言善信』Fiddler工具 — 4、Fiddler界面布局详解【工具栏】
(一)工具栏详细介绍
Fiddler工具栏就是平时比较常用功能的一个快捷方式。
如下图所示:
下面对每个工具进行详解的介绍。
1、第一组工具:
如下图所示:
WinConfig
:可以在里面配置一些windows系统的应用程序,配置在里面的应用的请求Fiddler都可以抓到,Fiddler5新增功能。
换句话说:就是有些应用Fiddler默认是抓不到包的,需要WinConfig添加配置一下,就能抓到了。- 一个消息的图标:点击该按钮可以为所有选定的session添加comment(对会话进行备注)。
Replay
:向服务器重新发送该请求。(重放)- 叉子
Remove
:从web sessions
中删除sessions的菜单(删除会话)。 Go
:恢复执行在request或response断点处暂停的所有sessions。(在打断点的时候使用)
2、第二组工具:
如下图所示:
Stream
:打开stream开关,取消所有没有设置中断的相应的缓存。即:点击为流模式,不点击为缓冲模式。- 缓冲模式:服务器把所有内容全部返回到Fiddler之后,Fiddler在一次性发送到客户端。可以控制响应,修改响应数据,但是时序图有时候会出现异常。(这样就支持断点功能,伪造请求,伪造响应等)
Fiddler默认的模式为缓冲模式。
在缓冲模式下,可以进行Fiddler的其他功能,比如支持断点功能,伪造请求,伪造响应等。 - 流模式:Fiddler会把收到内容立即发送给客户端。更接近真实浏览器的性能,速度快,时序图更准确(比如瀑布图),但是不能控制响应。
换句话说,与浏览器实际请求的模式一致,服务器响应什么数据,立即返回前端。
如果不需要AutoResponse
和Fileters
功能的话,一般使用缓冲模式.
- 缓冲模式:服务器把所有内容全部返回到Fiddler之后,Fiddler在一次性发送到客户端。可以控制响应,修改响应数据,但是时序图有时候会出现异常。(这样就支持断点功能,伪造请求,伪造响应等)
Decode
:打开decode,会对所有会话请求进行解码。(解码操作,默认勾选)
或者点击Response body is encoded. Click to decode.
进行单个会话请求的解码。
Keep: All sessions
:在下拉选项框中选择在web sessions(左侧会话列表)
列表中保存多少个sessions。
如果机器性能比较低的话,可以选择少保存一些会话,因为保存会话是需要占用内存的,但一般不做修改。Any Process/pick target...
:任何你要监听的进程(程序),精准定位。
当点击上面的Any Process
图标并将其移动到指定浏览器页面(或者其他程序界面)后,会单独记录这个页面的通信情况。
只能监听一个程序,在点击一次把心图标,则取消监听。
注意:记录Fiddler访问过程中发生的主要事件的日志,每当更新一次页面时,eventlog会自动刷新一次。。Find
:打开Fiddler Sessions
窗口,进行相关查找。Save
:把会话窗口中所有的sessions保存到.saz
格式的文件中。
把该文件发送给相关人员即可,他们打开后Fiddler的状态和你保存时候的Fiddler状态一样。
3、第三组工具:
如下图所示:
- 小相机:把当前的桌面的屏幕截图以
jpeg
的格式,添加到web sessions
列表中。(截屏)
点击后会倒数5秒进行桌面截图,可以把截图好的图片作为数据进行数据发送。(并没什么用,用的很少) - 小秒表:简单的计时功能。
点击一下开始计时,在点击一下停止计时。 Browse
:快捷的打开一个浏览器
如果选中了一个session,在浏览器中打开该URL。
如果没有选中任何sessions,会在IE浏览器中打开aboutblank
。Clear Cache
:清空WinINET的缓存文件,即:清除浏览器缓存功能。TextWizard
:打开文本编码/解码小工具。
支持编码和解码,比如base64,urlencode,urldecode,md5等。例如模拟get请求,可以将请求参数转为urlencode尽情编码。
4、第四组工具:
如下图所示:
Tearoff
:分离面板。一般不会使用。
点击叉子关闭,即可复原窗口。MSDN Search
:在MSDN的web sessions
区域进行搜索。
在微软开发者社区的搜索,一般都不会用。- 问号:打开Fiddler的帮助窗口。
Online
:鼠标放在上面,会显示一些本机的在线信息。如IP信息。- 小红叉:删除工具栏
注意:如果要恢复工具栏,可以点击菜单栏view —> show toolbar,进行恢复。
(二)工具栏使用说明
这里举例几个例子,说明工具栏中的工具怎么使用,没有说明的工具,在上一点中介绍的很详细了。
1、Fiddler修改代理端口:
在Fiddler点击Tools —> Options... —> Connections选项中
上图说明:
Fiddler listens on port
:Fiddler监听的端口是8888。Act as system proxy on startup
:Fiddler在启动时充当系统代理。(如果你不想代理系统的代理,这一项可以取消勾选)
注意:
- Google浏览器和IE浏览器默认访问的系统代理,Fiddler 就会自动代替。
- 而火狐浏览器需要自己手动配置。
- Fiddler监听的端口是可以自定义配置的,1024到65535的端口都可以,只要不冲突即可。
2、过滤Tunnel to...443请求链接
当我们使用浏览器发送请求的时候,例如访问百度。
使用Fiddler进行抓取,如下结果:
可以看到有很多Tunnel to...443
,图标是一把锁形状的链接。
这个是什么原因呢?
- connect请求是为了建立
http tunnel
(通道),connect是HTTP请求方法中的其中一种,它和GET、POST、PUT、DELETE请求方法是并列的。 - 因为网络环境受限,客户端无法直接访问某些网络,所以只能通过代理服务器访问网络,然后将内容转发给客户端,从宏观上看客户端与服务器端就像建立了一条隧道一样。
- 当使用https通信时,客户端使用
http connect
请求代理服务器,代理服务器使用connect方法与目标服务器建立http tunnel
,通道建立后,客户端与服务器进行通信,代理服务器就像透明一样,只是接收、转发tcp stream
。 - Fiddler抓包出现大量
connect tunnel
连接
是因为Fiddler是一个代理服务,访问百度网页(使用了https协议),满足了使用connect条件,所以客户端会使用connect方法与目标服务器建立http tunnel
,一旦connection建立完成,后续Fiddler会转发、接收所有的tcp stream
。 - 对于
connect tunnel
连接,服务器通常会进行限制,一般只开放SSL的443端口。
总结:可以理解成connect请求表示https的握手动作。也就是认证信息,只要是https就要进行认证。只要不是满篇的
Tunnel to….443
,就没有任何问题。
如果我们对看到很多的Tunnel to...443
链接比较头疼,或者不方便找到我们需要抓取的请求链接时,我们就可以把这些Tunnel to...443
请求链接全部过滤掉。
操作:菜单栏Rules —> 勾选Hide CONNECTs
选项,即可。
提示:一般
Hide CONNECTs
和Hide 304
选项一起勾选。
3、给抓到的请求添加备注
当我们使用Fiddler抓取到一个请求后,可以选中该请求,点击工具栏中的如下图标,即可给该请求添加备注。
添加备注和未添加备注的请求如下:
在实际的工作中,不一定非要每个请求都要添加备注。
但是请求添加备注后,当请求导出文件给其他人看的时候,别人能很快能识别你这个请求是用来干什么的。
4、Replay工具的使用
Replay
:重放工具,向服务器重新发送该请求。
使用方法很简单,选用需要重新发送的请求(一个或多个),点击Replay
工具按钮即可。
每点击一次Replay
工具按钮,就重发送一次所选中的请求到服务器。
把鼠标悬停在Replay
工具上会出现一些提示,如下:
-
Reissue the selected requests.
:重新发出选定的请求。 -
Hold CTRL to reissue unconditionally
:按住CTRL可无条件重新发出。这里翻译的不准确,其实选中一个请求,直接点击r键即可重新发送一次该请求。
-
Hold SHIFT to reissue multiple times.
:按住SHIFT键可重新发出多次。选中一个或者多个请求,按SHIFT + r 组合键,会弹出一个对话框,
输入数字,就表示重新发送多少次所选请求到服务器。这样的操作也就是模拟了一次"重放攻击"的操作。
5、移除工具(黑叉子)
移除工具有很多选项在下拉菜单中:
Remove all
:清除所有请求。Images
:清除图片类请求。- Connects:清除中间连接请求。
Non-200s
:清除响应状态非200的请求。Non-browser
:清除非浏览器请求。Complete&Unmarked
:清除已完成且未添加备注的请求。Duplicate response bodies
:清除重复响应bodies相同的请求。
扩展:删除会话列表(web sessions)中的请求会话
(1)删除所有选中的会话请求:
- 选中的会话上右键 —> Remove —> Selected Sessions。
- 或者直接按键盘上的Delete键即可。
(2)删除选中外的所有会话请求:
- 选中的会话上右键 —> Remove —> Unselected Sessions
- 快捷键:Shift + Delete
(3)删除会话窗口中的所有请求会话:
- 任意会话上右键 —> Remove —> All Sessions
- 快捷键:Ctrl + X
- 黑叉移除工具 —> Remove all
提示:浏览器去缓存刷新快捷键:Shift + F5。
6、查找功能
查找功能在工具栏中的Find
或者快捷键Ctrl + f
。
可以查找包含指定内容的请求(可单独指定请求过程或者响应过程,检测header或body),默认以黄色高亮显示。
Search
:搜索范围- Requests and responses:在请求和响应的所有数据中搜索。
- Requests only:仅在请求中的数据进行搜索。
- Responses only:仅在响应中的数据进行搜索。
- URLs only:在URL中搜素。
Examine
:检查,也是选择搜索范围的- Headers and bodies:在Headers 和bodies中搜索。
- Headers only:仅在Headers 中搜索。
- Bodies only:仅在bodies中搜索。
Match case
:大小写敏感Regular Expression
:使用正则表达式Search binaries
:二进制搜索,如音频,视频,Flash对象等Decode compressed content
:解码压缩内容,返回的body是encoded的,将所有的Responses decode后进行搜索,比较耗时。Search only selected sessions
:只搜索选中的回话。选中多个Sessions会默认激活选中。Select matches
:选择匹配。选中符合条件的搜索结果。Unmark old results
:取消标记旧的搜索结果。Unmark old results
:当不勾选Unmark old results
时,每次搜索的结果会在Unmark old results
循环使用不同的颜色作为背景高亮显示。