抓包工具 Fiddler 使用介绍

摘要:
简介Fiddler是一个数据包捕获工具,它可以拦截、重传、编辑和其他通过网络传输发送和接收的数据包的操作。Fiddler通过重写HTTP代理让数据通过它来监视和拦截数据。Fiddler还可以获取任何支持https代理的程序的数据包,但您需要先安装证书。通常,当您直接打开Fiddler时,就会开始自动捕获数据包。捕获的数据包列表Fiddler捕获的每个数据包都将显示在列表中。通过单击右菜单中的Inspector,单击特定数据包以查看详细信息。请求结果FiddlerOrchesterBeta选项FiddlerScript选项显示请求的JS脚本。

简介

Fiddler是一个抓包工具,可以将网络传输发送与接收的数据包进行截获、重发、编辑等操作。也可以用来检测流量。原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。

Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了。Fiddler也可以抓取支持https代理的任意程序的数据包但是需要要先安装证书。

代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。

工具栏

抓包工具 Fiddler 使用介绍第1张

说明注释、重新请求、删除会话、继续执行、流模式/缓冲模式、解码、保留会话、监控指定进程、寻找、保存会话、切图、计时、打开浏览器、清除IE缓存、编码/解码工具、弹出控制监控面板、MSDN、帮助

开启抓包

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

抓包工具 Fiddler 使用介绍第2张或者通过点击左下角图标抓包工具 Fiddler 使用介绍第3张。开启的时候该图标显示,关闭的时候该图标隐藏。

一般直接打开Fiddler的时候就开始自动抓包了。

已抓取数据包列表

每个Fiddler抓取到的数据包都会在该列表中展示,点击具体的一条数据包可以在右侧菜单点击Insepector查看详细内容。主要分为请求(即客户端发出的数据)和响应(服务器返回的数据)两部分。

数据包列表字段

名称

含义

#

抓取HTTP Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

请求地址的主机名

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值

数据包列表图标

图标

含义

clip_image001[13]

请求已经发往服务器

clip_image002[4]

已从服务器下载响应结果

clip_image003[4]

请求从断点处暂停

clip_image004[4]

响应从断点处暂停

clip_image005[4]

请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)

clip_image006[4]

请求使用 HTTP 的 POST 方法

clip_image007[4]

请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道

clip_image008[4]

响应是 HTML 格式

clip_image009[4]

响应是一张图片

clip_image010[4]

响应是脚本格式

clip_image011[4]

响应是 CSS 格式

clip_image012[4]

响应是 XML 格式

clip_image013[4]

响应是 JSON 格式

clip_image014[4]

响应是一个音频文件

clip_image015[4]

响应是一个视频文件

clip_image016[4]

响应是一个 SilverLight

clip_image017[4]

响应是一个 FLASH

clip_image018[4]

响应是一个字体

clip_image019[4]

普通响应成功

clip_image020[4]

响应是 HTTP/300、301、302、303 或 307 重定向

clip_image021[4]

响应是 HTTP/304(无变更):使用缓存文件

clip_image022[4]

响应需要客户端证书验证

clip_image023[4]

服务端错误

clip_image0244

会话被客户端、Fiddler 或者服务端终止

Statistics选项

统计面板,这里显示请求性能,随意点击一个请求,就可以看到Statistics关于该HTTP请求的性能以及数据分析了。

Inspectors选项(常用)

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

请求区域

名称

含义

Headers

TextView

 显示请求的数据

SyntaxView

 以表单形式显示所有的请求参数和参数值

WebForms

HexView

Auth

 显示认证信息

Cookies

 显示所有cookies

Raw

 显示Headers和Body数据

JSON

 若请求数据是json格式,以json形式显示请求内容

XML

 若请求数据是xml格式,以xml形式显示请求内容

响应区域

名称

含义

Transformer

Headers

TextView

 显示响应的数据

SyntaxView

ImageView

HexView

WebView

Auth

 显示认证信息

Caching

Cookies

 显示所有cookies

Raw

 显示Headers和Body数据

JSON

 若响应数据是json格式,以json形式显示响应内容

XML

 若响应数据是xml格式,以xml形式显示响应内容

AutoResponder选项

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

Composer选项(常用)

Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求。常用于模拟GET和POST请求。

模拟GET请求

抓包工具 Fiddler 使用介绍第28张

GET请求比较简单,接下来说下模拟POST请求。

模拟POST请求

这里模拟的是发送JSON数据,主要是需要在请求头设置下 Content-Type : application/json;charset=utf-8 ,然后在请求体里写上JSON数据。

如果发送普通文本数据的话,不需要设置请求头,默认的 Content-Type 是 application/x-www-form-urlencoded,表示普通的form表单元素提交,在发送前编码所有字符,提交的参数格式遵循:name=value&name=value&name=value...。也就是说要按照这种格式把数据写在请求体里。

抓包工具 Fiddler 使用介绍第29张

请求结果

抓包工具 Fiddler 使用介绍第30张

Fiddler Orchestra Beta选项

FiddlerScript选项

显示的是该请求的JS脚本。

Log选项

能够查看该次请求的日志。

Filters 选项(常用)

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

抓包工具 Fiddler 使用介绍第31张

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

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

抓包工具 Fiddler 使用介绍第32张

Host 可选择隐藏,展示,标记某个域名下的会话。

抓包工具 Fiddler 使用介绍第33张

设定好后可点击Actions中的 Run Filterset now 来执行过滤条件。

Timeline 选项

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

Fiddler 命令行

命令行在左下角

抓包工具 Fiddler 使用介绍第34张

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

命令

对应请求项

介绍

示例

?

All

问号后边跟一个字符串,可以匹配出包含这个字符串的请求

?google

>

Body

大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求

>1000

<

Body

小于号跟大于号相反,匹配出请求大小,小于这个数字的请求

<100

=

Result

等于号后面跟数字,可以匹配HTTP返回码

=200

@

Host

@后面跟Host,可以匹配域名

@www.baidu.com

select

Content-Type

select后面跟响应类型,可以匹配到相关的类型

select image

cls

All

清空当前所有请求

cls

dump

All

将所有请求打包成saz压缩包,保存到“我的文档Fiddler2Captures”目录下

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

参考地址:https://www.cnblogs.com/yyhh/p/5140852.html

https://www.cnblogs.com/conquerorren/p/8472285.html

免责声明:文章转载自《抓包工具 Fiddler 使用介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇引用视频全屏播放代码ASP.NET所谓前台调用后台、后台调用前台想到HTTP——实践篇下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vue中进行断点调试的两种方式(使用外部浏览器和VsCode Debug for Chrome 插件)

场景 在使用IDEA等进行后台开发时可以直接在想要进行断点调试的地方双击添加一个断点,然后逐步或者逐过程进行调试。 但是在Vue中如果想要进行调试时,如果是在js中调试的话,可以直接添加一个debugger,然后在浏览器中打开检查进行断点调试。 但是如果在vue界面的话则没法逐步查看变量的值。 比如: 在Vue页面中,点击搜索按钮时 <el-butt...

gcc中gdb调试工具的使用

首先,利用gcc编译源文件时添加 -g 选项生成可调试的文件,例如,要调试test.c文件,输入命令 $ gcc -g test.c -o test_gdb 生成test_gdb文件。 然后,运行命令 $ gdb test_gdb 可进入调试模式。 在调试模式中,(gdb) 表明此时可输入命令,常用的gdb调试命令如下: GDB常用命令 格式 含义 简...

Mac下也能用抓包工具Fiddler

一直以来都是在Windows底下工作,对于抓包工具,自然而然当属Fiddler最最出色。不过Fiddler是在.Net runtime环境下运行的,所以想要在Mac下使用,有些困难。 在试过了Charles、Rythem、TinyProxy和NProxy这些抓包工具后,我依然苦恼,它们有的需要支付昂贵的费用,有的只支持本机网页请求代理,而有些界面只有文本模...

Node 之http模块

   在Node.js的核心模块中主要有http、fs、url、querystring模块,在前面的博文中有一篇已经介绍了url模块,在上一篇博文中http模块使用到过,在这篇博文中我将详细分析其方法和原理。   1、http模块-----创建HTTP服务器、客户端          使用http模块只需要在文件中通过require(‘http’)引入即可...

转载 Android之网络与通信

2.三种网络接口简述2.1标准Java接口java.net.*提供与联网有关的类,包括流和数据包套接字、Internet协议、常见HTTP处理。使用java.net.*包连接网络代码:Java代码 收藏代码try{ //定义地址 URL url=newURL("http://www.google.com"); //打开连接 HttpURLConn...

Python Django 前后端数据交互 之 HttpRequest、HttpResponse、render、redirect

在使用三神装的时候,首先当然是得要导入它们: from django.shortcuts import HttpResponse, render, redirect   一、HttpRequest捕获请求 捕获请求——HttpRequest对象 1、属性 HttpRequest.scheme  #一个字符串,表示请求的方案(通常是http或者https)H...