抓包工具:Fiddler下载、安装、使用 教程

Fiddler是一款免费网络代理调试工具。

Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!

当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。

一、Fiddler 下载

注意:Fiddler2需要.NET v2,Fiddler4需要.NET v4,不过这些也不用怎么管,下载用默认的就好了。

官网下载:https://www.telerik.com/fiddler

百度网盘链接: https://pan.baidu.com/s/14C0bOTICZADj03ZGx_eygw 提取码: chdi

二、Fiddler 安装

由于是Fiddler只支持Windows XP到Windows 10,安装我就不多说了,exe傻瓜式安装,大家都能明白。

三、Fiddler 使用

先给大家简单说一下,Fiddler这款抓包工具,与别人工具还是有所不同的。

Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。当然Fiddler很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了,是不是很方便?

1、开启或关闭抓包功能

Fiddler想要抓到数据包,要确保Capture Traffic是开启,在“File –> Capture Traffic”。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。

Fiddler开启抓包

2、字段说明

Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思?Fiddler字段说明

名称含义
#抓取HTTP Request的顺序,从1开始,以此递增
ResultHTTP状态码
Protocol请求使用的协议,如HTTP/HTTPS/FTP等
Host请求地址的主机名
URL请求资源的位置
Body该请求的大小
Caching请求的缓存过期时间或者缓存控制值
Content-Type请求响应的类型
Process发送此请求的进程:进程ID
Comments允许用户为此回话添加备注
Custom允许用户设置自定义值
图标含义
在这里插入图片描述请求已经发往服务器
在这里插入图片描述已从服务器下载响应结果
请求从断点处暂停请求从断点处暂停
响应从断点处暂停响应从断点处暂停
请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)
请求使用 HTTP 的 POST 方法请求使用 HTTP 的 POST 方法
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道
响应是 HTML 格式响应是 HTML 格式
响应是一张图片响应是一张图片
响应是脚本格式响应是脚本格式
响应是 CSS 格式响应是 CSS 格式
响应是 XML 格式响应是 XML 格式
响应是 JSON 格式响应是 JSON 格式
响应是一个音频文件响应是一个音频文件
响应是一个视频文件响应是一个视频文件
响应是一个 SilverLight响应是一个 SilverLight
响应是一个 FLASH响应是一个 FLASH
响应是一个字体响应是一个字体
普通响应成功普通响应成功
响应是 HTTP/300、301、302、303 或 307 重定向响应是 HTTP/300、301、302、303 或 307 重定向
响应是 HTTP/304(无变更)响应是 HTTP/304(无变更):使用缓存文件
响应需要客户端证书验证响应需要客户端证书验证
服务端错误服务端错误
会话被客户端、Fiddler 或者服务端终止会话被客户端、Fiddler 或者服务端终止

3、Statistics 请求的性能数据分析

好了,左边看完了,现在可以看右边了;随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了。

Statistics 请求的性能数据分析

4、Inspectors 查看数据内容

Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容;

Inspectors 查看数据内容

5、AutoResponder 允许拦截指定规则的请求

AutoResponder允许你拦截指定规则的求情,并返回本地资源或Fiddler资源,从而代替服务器响应。

看下图5步,我将“baidu”这个关键字与我电脑“f:\Users\YukiO\Pictures\boy.jpeg”这张图片绑定了,点击“Save”保存后勾选“Enable rules”,再访问baidu,就会被劫持。

AutoResponder 允许拦截指定规则的请求

这个玩意有很多匹配规则,如:

  1. 字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配

字符串匹配(baidu) 是否匹配

http://www.baidu.com 匹配

http://pan.baidu.com 匹配

http://tieba.baidu.com 匹配

  1. 正则表达式匹配:以“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)

Composer 自定义请求发送服务器

7、Filters 请求过滤规则

Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。

勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host

Zone和Host

Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:Zone 指定只显示内网(Intranet)或互联网(Internet)

Host 指定显示某个域名下的会话:Host 指定显示某个域名下的会话

如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可!

8、Timeline 请求响应时间

在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间:

Timeline 请求响应时间

9、Fiddler 设置解密HTTPS的网络数据

Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。Fiddler是个很会装逼的好东西,大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。

解密HTTPS需要手动开启,依次点击:

(1)、Tools –> Fiddler Options –> HTTPS;

Tools –> Fiddler Options –> HTTPS

(2)、勾选Decrypt HTTPS TrafficDecrypt HTTPS Traffic

(3)、点击OK

Fiddler 设置解密HTTPS的网络数据

10、Fiddler 内置命令与断点

Fiddler还有一个藏的很深的命令框,就是眼前,我用了几年的Fiddler都没有发现它,偶尔在别人的文章发现还有这个小功能,还蛮好用的,整理下记录在这里。

Fiddler 内置命令

FIddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情,比如说,把包改了,再发送给服务器君。还有balabala一大堆的事情可以做,就不举例子了。

命令对应请求项介绍示例
?All问号后边跟一个字符串,可以匹配出包含这个字符串的请求?google
>Body大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求>1000
<Body小于号跟大于号相反,匹配出请求大小,小于这个数字的请求<100
=Result等于号后面跟数字,可以匹配HTTP返回码=200
@Host@后面跟Host,可以匹配域名@www.baidu.com
selectContent-Typeselect后面跟响应类型,可以匹配到相关的类型select image
clsAll清空当前所有请求cls
dumpAll将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下dump
startAll开始监听请求start
stopAll停止监听请求stop

断点命令

bpafterAllbpafter后边跟一个字符串,表示中断所有包含该字符串的请求bpafter baidu(输入bpafter解除断点)
bpuAll跟bpafter差不多,只不过这个是收到请求了,中断响应bpu baidu(输入bpu解除断点)
bpsResult后面跟状态吗,表示中断所有是这个状态码的请求bps 200(输入bps解除断点)
bpv / bpmHTTP方法只中断HTTP方法的命令,HTTP方法如POST、GETbpv get(输入bpv解除断点)
g / goAll放行所有中断下来的请求g

bpafter 命令示例:

bpafter

bpafter

断点命令:

断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获那些请求。如下示例:

Fiddler断点命令

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐