fiddler抓包工具使用介绍

Fiddler抓包工具使用介绍及抓包分析(详解)

Fiddler原理

Fiddler是位于客户端和服务器端的HTTP代理
目前最常用的http抓包工具之一
功能非常强大,是web调试的利器

  • 监控浏览器所有的HTTP/HTTPS流量
  • 查看、分析请求内容细节
  • 伪造客户端请求和服务器响应
  • 测试网站的性能
  • 解密HTTPS的web会话
  • 全局、局部断点功能
  • 第三方插件
    场景使用场景
  • 接口调试、接口测试、线上环境调试、web性能分析
  • 判断前后端bug、开发环境hosts配置、mock、弱网断网测试

B/S架构

编写程序部署到web服务器
web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理http请求
客户端通过http协议获取服务器上的网页、文档等资源在这里插入图片描述

工作原理

作为系统代理,发送请求或接受响应
在这里插入图片描述

HTTP协议

  • Hyper Text Transfer Protocol (超文本传输协议)
  • 用于从万维网服务器传输超文本到本地浏览器的传送协议
  • HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80
  • http是基于请求与响应模式的、无状态的、应用层的协议
    在这里插入图片描述
    下面为http请求构成的两部分:

请求报文

客户端发给服务器,HTTP请求报文主要由请求行,请求头部、空一行、请求正文4部分组成。
在这里插入图片描述
在这里插入图片描述

请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。

请求方法字段

请求方法备注
GET请求资源
POST提交资源
HEAD获取响应头
PUT替换资源
DELETE删除资源
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,用于测试或诊断

统一资源定位符(URL)

  1. Uniform Resource Locator:统一 资 源定位符
    1. 用于描述网.上的资源
  2. 格式: schema:/ /host[:port#]/path/ …/ [?query-string ]
    1. scheme:协议,如http, https, ftp等
    2. host:域名或者IP地址
    3. port: 端口
    4. path:资源路径
    5. query-string:发送的参数
  3. 资源定位符http:// test. lemonban.com/ningmengban/images/logo.png
  4. 协议 http://
  5. 域名 test.lemonban. com 对应主机IP,为了查找主机 cmd命令行可以用ping域名的方式命令查找IP

请求头部

请求头可以是任意信息,根据服务器需要进行组合

请求头描述
Host主机ip地址或域名
User- Agent客户端相关信息,如操作系统、刘览器等信息
Accept指定客户端接收信息类型,如: image/jpg, text/html, application/json
Accept-Charset替换资源
Accept-charaet客户端接受的字符集,如gb2312,iso-8859-1
Accept-Encoding可接受的内容编码,gzip
Accept-Language接受的培言,如Accept-Langunge:zh-cn
Authorization客户瑞提供给服务端,进行权限认证的信息
Cookie携带的cookie信息
Referer当前文档的URL,即从哪个链接过来的
Content-Type请求体内容类型,如Content-Type: application/x www form urlencoded
Content -Length数据长度
Cache-Control缓存机制,如Cache-Control:no-cache
Pragma防止页面被缓存,和Cache-control:no-cache作用一样

请求体

真正发送给服务器的一串文本

响应报文

服务器返回给客户端,HTTP响应报文主要由状态行,消息头部、空一行、响应体4部分组成。
在这里插入图片描述

状态行

请求行由HTTP协议版本字段、状态码字段及其描述3个字段组成,它们用空格分隔。
状态码:用以表示网页服务器HTTP响应状态的3位数字代码

状态码描述
1XX提示信息,请求被成功接收
2XX成功,请求被成功处理
3XX重定向相关
4XX客户端错误
5XX服务器端错误

常用状态码:https://blog.csdn.net/qq_35689573/article/details/82120851

响应头

响应头描述
ServerHTTP服务器的软件信息
Date响应报文的时间
Expires指定缓存过期时间
Set-Cookie设置Cookie
Last-Modified资源最后修改时间
Content-Length内容长度
Connection如:Content-Type:text/html;charset=utf-8
Connection如keep-Alive,表示保持tcp链接不关闭,不回永久保持链接,服务器可设置
Location指明重定向的位置,新的URL地址,如304的情况

Fiddler使用

fiddler安装

注意:Fiddler2需要.NET v2,Fiddler4需要.NET v4,不过这些也不用怎么管,下载用默认的就好了。
官网下载:https://www.telerik.com/fiddler
由于是Fiddler只支持Windows XP到Windows 10,安装我就不多说了,exe傻瓜式安装

fiddler的主界面

在这里插入图片描述
端口修改,是否进行系统代理,常用操作
端口修改,是否进行系统代理,常用操作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dbt6dc52-1682085682625)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682078576346.png)]

菜单栏(设置选项)

File菜单

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bc7zOuUf-1682085682625)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682078759711.png)]

  1. Capture Traffic是个开关,可以控制是否把Fiddler注册为系统代理。当把Fiddler注册为系统代理时,所有依赖于WinINET代理的应用(如IE浏览器和其他浏览器)会把Web请求发送给Fiddler.
  2. New Viewer 是用来打开一个新的fiddler窗口
  3. Load Archive 用于重新加载之前保存的fildder文档
  4. Save 保存session会话
  5. Import Sessions… 导入session会话
  6. Export Sessions 导出session会话
  7. Exit 退出
Edit菜单

在这里插入图片描述

  1. Copy下面的几个子菜单分别支持复制选中Session的某些信息。
  2. Remove下面的子菜单分别支持从Web Session列表中删除全部、选择或未选中的Session
  3. Select All命令选择Sessions列表的所有内容。
  4. Paste as Session命令会基于剪贴板上的内容,生成一个或多个模拟的Web Session.
  5. Find Session命令会打开Find Session窗口,搜索捕获到的数据流。
Rules菜单

在这里插入图片描述
一般会点击 Hide CONNECTS+Hide 304s

  1. Hide Image Request触发器控制是否在Web Session列表中显示图像类Session.

  2. Hide CONNECTS触发器控制是否在Web Session列表中显示使用CONNECT请求方法的Session(一般会选择)

  3. Automatic Breakpoints子菜单控制Fiddler是否会自动在Before Requests或After Responses处设置断点。Ignore Image触发器控制这些断点是否作用于图片请求

  4. Customize Rules…菜单命令会使用配置的脚本编辑器打开当前的FiddlerScript文件

  5. 如果选中Require Proxy Authentication菜单项,所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应,要求客户端安装证书

    该规则可以用于测试HTTP客户端,确保这些规则在有证书的客户端服务器上可以正常工作。

  6. 如果选中Apply GZIP Encoding菜单项,只要请求包含具有gzip标识的Accept-Encoding请求头,就会对除了图片以外的所有响应使用GZIP HTTP进行压缩。

    该规则用于测试使用GZIP选项支持的客户端是否真正对内容进行压缩。该选项还支持性能调优,并且计算传输的压缩后的数据流的字节数。

  7. 如果选中Remove All Encoding,会删除所有请求和响应的HTTP内容编码和传输编码

  8. Hide 304s选项会隐藏包含HTTP/304 Not Modified状态的响应的所有Session.(一般会选择)

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

  10. User-Agents子菜单支持把所有请求的User-Agent请求头设置或替换成指定值。

  11. performance子菜单提供影响Web性能的简单选项

Tools菜单栏

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TdnKxCYd-1682085682627)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682078898802.png)]

  1. Fiddler Options…打开Fiddler Options窗口,针对fiddler的设置

  2. WinINET Options…打开IE的Internet Options窗口,windows 的ie设置

  3. Clear WinINET Cache选项会清空IE和其他应用中所使用的WinINET缓存中的所有文件

  4. Clear WinINET Cookies选项会清空IE和其他应用中所发送的WinINET Cookie.

    Session的Cookies还是保持不变

  5. TextWizard…对文本进行编码和解码的工具

  6. Compare Session选项只有当选中Web Session列表中的两个Session时才有效。

  7. Reset Script 重置脚本

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

  9. View IE Cache

  10. New Session Clipboard…打开一个Session的剪贴板

  11. HOSTS…选项会打开Fiddler的Host Remapping工具

View菜单栏

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FWDjTu7s-1682085682628)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682078911826.png)]

  1. Show Toolbar控制Fiddler工具栏是否可见

  2. Default Layout、Stacked Layout、Wide Layout三种界面布局

  3. Minimize to Tray或按下CTRL+M可以最小化Fiddler到系统托盘中

  4. Squish Session List控制Web Session列表是否水平收缩

  5. AutoScroll Session list选项控制当添加新的Session时,Fiddler是否会自动滚动到Session列表的底部

help菜单栏

在这里插入图片描述

  1. Help 获取帮助
  2. Fiddler Book 开发者写的书
  3. Discussions 讨论
  4. HTTP References HTTP参考文献
  5. Troubleshoot… 疑难解答
  6. Get Priority Support… 购买最新支持
  7. Check for Support… 寻找支持
  8. Check for Updates… 检查更新
  9. Send Feedback… 反馈
  10. About 相关内容

工具栏

在这里插入图片描述
工具栏依次是:Replay:会话保存,数据重放、GO:转到、Stream:数据流、Decode:解码、session:保持所以会话、Process:进程、Find:查找、Save:保存、Browse:浏览、clear Cache:清除缓存、TextWizard:文字编码、Tearoff:分离、Online:本机网络信息,可以看到本机ip

相关快捷键

Shift + F5 是去缓存刷新快捷键

Shift + R,多次重放Session(会话)

ctrl + X ,删除所有Session

Shift + Del 删除选中以外的Session(会话)

Ctrl + F 查找会话

Session List会话列表

组成部分
  • Fiddler抓取到的每条http请求(每一条称为一个session)
  • 主要包含了请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息
字段名含义
#HTTP Request的顺序,从1开始,按解页面加载请求的顺序递增[Result]–
ResultHTTP响应的状态码,可以参考我第一篇笔记
Protocol请求使用的协议(如HTTP/HTTPS/FTP)
Host请求地址的域名
URL请求的服务器路径和文件名,也包括GET参数
BODY请求的大小,以byte为单位
Caching请求的的缓存过期时间或缓存控制 header等值
Content-Type请求响应的类型(Content-Type)
Process发出此请求的Windows进程及进程ID
Commments用户通过脚本设置或者右键菜单给此session增加的备注
Custom用户可以通过脚本设置的自定义值

更改自定义用户脚本,可以完成例如增加ip列的操作,要重启fiddler才会生效。

列可以拖动列名更改排布位置

表头可以做排序,点击表头即可根据该表头的字段升序降序排序

命令行

在这里插入图片描述
输入help进入官方文档查询

状态栏

代理状态

在这里插入图片描述显示的 Fiddler 是否处于系统代理状态,(有capture表示开启状态,点击清除图标取消代理),可以用快捷键 F12 切换或者点击该区域

会话选择

在这里插入图片描述

  • All Processes —— 捕获所有进程的请求
  • Web Browsers —— 捕获 Web 浏览器的请求,应该特指 IE
  • Non-Browser —— 捕获非 Web 浏览器的请求
  • Hide All —— 隐藏所有请求
断点设置

显示当前断点设置状态,通过鼠标点击切换。可以有三种:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n2Uju1EB-1682085682630)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682081656066.png)]—— 不设置断点
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CtRwtu2J-1682085682631)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682081672235.png)]—— 所有请求在断点处被暂停

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TdIv3ISH-1682085682631)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682081686083.png)]—— 所有响应在断点处被暂停

选择Session数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eo5oJsJh-1682085682632)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682081708373.png)]显示共选择了多少 session 及 session 总数(如图所示选择 了2 个 session,共 77 个session)

附加信息

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

辅助标签加工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SkWmorKL-1682085682632)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682081938052.png)]

Statistics-统计分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FuDCZTAL-1682085682633)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682082059557.png)]Http或Https请求的性能和其他数据分析,如DNS解析时间,TCP/TP建立连接的时间(TCP三次握手的时间)、SSL连接的时间(针对https请求)等信息。

Inspectors-检查器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSgyrZlR-1682085682633)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682082099528.png)]

直接可以双击会话打开检查器,或选择会话后点击检查器。以不同的形式展示请求或部分请求报文、响应或部分响应报文。

请求部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJ1LSzR8-1682085682634)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682082185677.png)]

  1. Headers:显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等

  2. TextView:显示 POST 请求的 body 部分为文本

  3. SyntaxView:语法的格式

  4. WebForms:显示请求的 GET 参数 和 POST body 内容,特别说明,这里的QueryString为url后接的内容;这里 body 为是 application/x-www-form-urlen-coded 格式。(form表单post请求默认是这种查看方式)

  5. HexView: 用十六进制数据显示请求

  6. Auth :显示 header 中的 Proxy-Authorization 和 Authorization 信息

  7. Cookies:显示请求的cookie信息

  8. Raw:原生的纯文本(用的较多)

  9. XML:如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它

响应部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ornPdPmS-1682085682634)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682082222971.png)]

  1. Transformer :显示响应的编码信息

  2. Headers :用分级视图显示响应的 header

  3. TextView : 使用文本显示相应的 body

  4. SyntaxView: javaScript 语法视图(相较text有高光)

  5. ImageVies :如果请求是图片资源,显示响应的图片

  6. HexView : 用十六进制数据显示响应

  7. WebView :响应在 Web 浏览器中的预览效果

  8. Auth:显示响应 header 中的 Proxy-Authorization 和 Authorization 信息

  9. Caching : 显示此请求的缓存信息

  10. Cookies:显示返回的cookie信息

  11. Raw:原生的纯文本(用的较多)

  12. JSON:返回的响应内容如果是一个json格式的,这里会显示

  13. XML:如果相应的 body 是 XML 格式,就是用分级的 XML 树来显示它

AutoResponder-自动响应器

可用于拦截某一请求,进行如下操作:

  • 重定向到本地的资源
  • 使用Fiddler的内置响应
  • 自定义响应
操作步骤
  1. 在AutoResponder面板下,点击[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zi4ZIwpr-1682085682635)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682082748851.png)]单击选择需要拦截的请求,复制请求的URL(请求右键 >> Copy >> Just Url);粘贴至右侧面板Rule Editor(或者左键按住,并拖动需要请求的url到右侧面板,此时url自动填充在Rule Editor处;或者直接去网页复制相应图片位置等)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9sOAyf9Y-1682085682635)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682083415391.png)]
    在这里插入图片描述

  2. 设置响应的内容,可以选择Fiddler的内置响应或者是重定向至用户本地文件(或者点击规则,鼠标右键,选择Edit Response,进行自定义响应)

  3. 同时选中 Enable rules(使用规则)和 Unmatched requests passthrough(放行未匹配的请求)。在这里插入图片描述

Fiddler自带响应在这里插入图片描述

Composer-设计器

设计请求,修改请求参数,进行简单的接口测试。具体操作:鼠标左键拖动请求的url至右侧Composer面板处,请求信息会自动填充,修改请求参数,点击Execute。(接口测试,举例后端未作数据校验 )

Scratchpad多个请求,三击选中指定位置的请求。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y7Oe8CqU-1682085682637)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1682084531253.png)]

Filters-过滤器

作用:忽略不想显示的请求,过滤出想要的请求,是一个多维度的过滤器。过滤器要起作用,必须选中Use Filters ,不用的时候记得关闭,防止出现抓不到包的情况。具体功能如下:在这里插入图片描述

Hosts 主机

域过滤在这里插入图片描述

  • Show only Intranet Hosts:仅显示局域网的请求
  • Show only Internet Hosts:仅显示广域网的请求
  • No Zone Filter:无域限制(默认)

主机过滤在这里插入图片描述

  • No Host Filter :没有主机过滤器(默认)
  • Hide the following Hosts:隐藏以下主机
  • Show only the following Hosts:只显示以下主机
  • Flag the following Hosts:标记以下主机
Client Process 客户端进程
  • Show only traffic from:仅显示某一进程的请求
  • Show only Internet Explorer traffic:仅显示IE浏览器发出的请求
  • Hide traffic from Service Host:隐藏来自service host(即由svchost.exe进程)发出的请求
Request Headers 请求头
  • Show only if URL contains:仅显示url中包含输入的字符串的请求
  • Hide if URL contains:隐藏url中包含输入的字符串的请求
  • Flag requests with headers:标记请求头中有指定内容的请求
  • Delete request headers:删除请求头中的指定内容
  • Set request header:设置请求头中添加指定的内容
4、Breakpoints 断点
  • Break request on POST:在POST请求中设置断点(请求前设置断点)
  • Break request on GET with query string:在带有请求参数的GET请求中设置断点(请求前设置断点)
  • Break on XMLHTTpRequest:在ajax请求中设置断点(请求前设置断点)
  • Break response on Content-type:在响应中含有指定Content-type的请求中设置断点(响应后设置断点)
5、Response Status Code 响应状态码
  • Hide success(2xx):隐藏响应状态码为2XX的请求
  • Hide non-2xx:隐藏响应状态码非2xx的请求
  • Hide redirects(300, 301, 302, 303, 307):隐藏状态码为300、301、302、303、307的重定向请求
  • Hide Authentication demands(401,407):隐藏状态码为401,407的响应(需要用户确认证书的请求)
  • Hide Not Modified(304):隐藏状态码为304的响应
6、Response Type and Size 响应类型和大小
  • Show all Content-Types:显示任意响应类型的请求
  • Show only IMAGE/*:仅显示响应类型是图片的请求
  • Show only HTML:仅显示响应类型是html的请求
  • Show only TEXT/CSS:仅显示响应类型是text/css的请求
  • Show only SCRIPTS:仅显示响应类型是js脚本的请求
  • Show only XML:仅显示响应类型是xml的请求
  • Show only JSON:仅显示响应类型是json的请求
  • Hide IMAGE/*:隐藏响应类型是图片的请求
  • Hide smaller than KB:隐藏响应体小于指定字节数的响应
  • Hide larger than KB:隐藏响应体大于指定字节数的响应
  • Time HeatMap:根据响应时间给每个请求设置背景色。小于50ms绿色,50-300ms不着色,300-500ms黄色,大于500ms红色
  • Block scriptfiles:将响应类型为js脚本的请求,设置返回HTTP/404响应
  • Block image files:将响应类型为图片的请求,设置返回HTTP/404响应
  • Block SWF files:将响应类型为flash的请求,设置返回HTTP/404响应
  • Block CSS files:将响应类型为css的请求,设置返回HTTP/404响应
7、Response Headers 响应头
  • Flag responses that setcookies:将响应中设置了cookies的请求标记显示(斜体显示)
  • Flag responses with headers:将响应头中包含指定内容的请求标记显示(加粗显示)
  • Delete responseheaders:删除响应中指定的响应头
  • Set response header:将响应头中添加指定的内容
  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值