共计 3610 个字符,预计需要花费 10 分钟才能阅读完成。
Fiddler 是一款强大的 Web 调试工具,用于在浏览器和服务器之间拦截和检查 HTTP/HTTPS 流量。它可以帮助开发人员跟踪和调试 Web 应用程序的性能问题和安全问题。
Fiddler 可以显示 HTTP 请求和响应的详细信息,包括请求头、请求体、响应头和响应体。
它还提供了很多其他功能,如自定义过滤器、自动响应和脚本扩展。Fiddler 是免费的,并且可以在 Windows、macOS 和 Linux 上使用。
当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。
一、Fiddler 下载
注意:Fiddler2 需要.NET v2,Fiddler4 需要.NET v4,不过这些也不用怎么管,下载用默认的就好了。
官网下载:https://www.telerik.com/fiddler
链接: https://pan.baidu.com/s/1sCt8uZdnOJHtuTGzcJYHHg 提取码: 2q27
二、Fiddler 安装
由于是 Fiddler 只支持 Windows XP 到 Windows 10,安装我就不多说了,exe 傻瓜式安装,大家都能明白。
三、Fiddler 使用
先给大家简单说一下,Fiddler 这款抓包工具,与别人工具还是有所不同的。
Fiddler 是通过改写 HTTP 代理,让数据从它那通过,来监控并且截取到数据。当然 Fiddler 很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了,是不是很方便?
1、开启或关闭抓包功能
Fiddler 想要抓到数据包,要确保 Capture Traffic 是开启,在“File –> Capture Traffic”。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭 / 开启抓包功能。
2、字段说明
Fiddler 开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思?
3、Statistics 请求的性能数据分析
好了,左边看完了,现在可以看右边了;随意点击一个请求,就可以看到 Statistics 关于 HTTP 请求的性能以及数据分析了。
4、Inspectors 查看数据内容
Inspectors 是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容;
5、AutoResponder 允许拦截指定规则的请求
AutoResponder 允许你拦截指定规则的求情,并返回本地资源或 Fiddler 资源,从而代替服务器响应。
看下图 5 步,我将“baidu”这个关键字与我电脑“f:\Users\YukiO\Pictures\boy.jpeg”这张图片绑定了,点击“Save”保存后勾选“Enable rules”,再访问 baidu,就会被劫持。
这个玩意有很多匹配规则,如:
1. 字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配
字符串匹配(baidu)是否匹配
http://www.baidu.com 匹配
http://pan.baidu.com 匹配
http://tieba.baidu.com 匹配
2. 正则表达式匹配:以“regex:”开头,使用正则表达式来匹配,这个是区分大小写的
字符串匹配(regex:.+.(jpg | gif | bmp) $)是否匹配
http://bbs.fishc.com/Path1/query=foo.bmp&bar 不匹配
http://bbs.fishc.com/Path1/query=example.gif 匹配
http://bbs.fishc.com/Path1/query=example.bmp 匹配
http://bbs.fishc.com/Path1/query=example.Gif 不匹配
6、Composer 自定义请求发送服务器
Composer 允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求
Parsed 模式下你只需要提供简单的 URLS 地址即可(如下图,也可以在 RequestBody 定制一些属性,如模拟浏览器 User-Agent)
7、Filters 请求过滤规则
Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。
勾选左上角的 Use Filters 开启过滤器,这里有两个最常用的过滤条件:Zone 和 Host
Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:
Host 指定显示某个域名下的会话:
如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可!
8、Timeline 请求响应时间
在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间:
9、Fiddler 设置解密 HTTPS 的网络数据
Fiddler 可以通过伪造 CA 证书来欺骗浏览器和服务器。Fiddler 是个很会装逼的好东西,大概原理就是在浏览器面前 Fiddler 伪装成一个 HTTPS 服务器,而在真正的 HTTPS 服务器面前 Fiddler 又装成浏览器,从而实现解密 HTTPS 数据包的目的。
解密 HTTPS 需要手动开启,依次点击:
(1)、Tools –> Fiddler Options –> HTTPS;
(2)、勾选 Decrypt HTTPS Traffic
(3)、点击 OK
10、Fiddler 内置命令与断点
Fiddler 还有一个藏的很深的命令框,就是眼前,我用了几年的 Fiddler 都没有发现它,偶尔在别人的文章发现还有这个小功能,还蛮好用的,整理下记录在这里。
FIddler 断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情,比如说,把包改了,再发送给服务器君。还有 balabala 一大堆的事情可以做,就不举例子了。
命令 | 对应请求项 | 介绍 | 示例 |
---|---|---|---|
? | All | 问号后边跟一个字符串,可以匹配出包含这个字符串的请求 | |
> | Body | 大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求 | >1000 |
< | Body | 小于号跟大于号相反,匹配出请求大小,小于这个数字的请求 | <100 |
= | Result | 等于号后面跟数字,可以匹配 HTTP 返回码 | =200 |
@ | Host | @后面跟 Host,可以匹配域名 | @www.baidu.com |
select | Content-Type | select 后面跟响应类型,可以匹配到相关的类型 | select image |
cls | All | 清空当前所有请求 | cls |
dump | All | 将所有请求打包成 saz 压缩包,保存到“我的文档 \Fiddler2\Captures”目录下 | dump |
start | All | 开始监听请求 | start |
stop | All | 停止监听请求 | stop |
断点命令 | |||
bpafter | All | bpafter 后边跟一个字符串,表示中断所有包含该字符串的请求 | bpafter baidu(输入 bpafter 解除断点) |
bpu | All | 跟 bpafter 差不多,只不过这个是收到请求了,中断响应 | bpu baidu(输入 bpu 解除断点) |
bps | Result | 后面跟状态吗,表示中断所有是这个状态码的请求 | bps 200(输入 bps 解除断点) |
bpv / bpm | HTTP 方法 | 只中断 HTTP 方法的命令,HTTP 方法如 POST、GET | bpv get(输入 bpv 解除断点) |
g / go | All | 放行所有中断下来的请求 | g |
bpafter 命令示例:
断点命令:
断点可以直接点击 Fiddler 下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获那些请求。如下示例: