Fiddler 入门

333 阅读14分钟

安装与配置

安装

  • 下载地址
  • 安装
    • image.png
      • Windows 使用一种名为 "AppContainer" 的隔离技术,可能会干扰对沉浸式应用程序和 Edge 浏览器的流量捕获。请使用 Progress Telerik Fiddler 工具栏中的 WinConfig 按钮启用流量捕获。您想了解更多吗?要禁用此警告,请点击"取消"。
      • 点击 "Yes" 进入Windows官网详细了解,点击 "No" 关闭窗口,点击"Cancel"禁用这个警告。
    • 点击"Cancel"

配置

配置 https

  • Tools -> Options -> HTTPS -> Capture HTTPS CONNECTs(捕获HTTPS连接) 勾选 -> Decrpt HTTPS traffic(解密HTTP通信) 勾选 -> Ignore server certificate errors(unsafe)(忽略服务器证书错误(不安全)) 勾选
    • image.png
    • 为了拦截HTTPS流量,Fiddler 生成一个唯一的根证书。您可以在Windows 配置信任此根证书,以禁止安全警告。这通常是安全的。单击“是”,重新配置Windows“受信任的CA列表”。点击“否”,如果这对你是未知的。信任Fiddle Root证书
    • 点击yes
    • image.png
    • 点击是
    • image.png
    • 点击是
    • image.png
  • 检查证书是否安装成功
    • Actions -> open windows certificate Manager
      • image.png

界面

59681e46a0b64430bcdfb5b69c69e1e0~tplv-k3u1fbpfcp-jj-mark_0_0_0_0_q75.png

菜单栏

image.png

  • File 文件
    • Capture Traffic 是否开启抓包功能,可以控制是否把Fiddler注册为系统代理。当把Fiddler注册为系统代理时,所有依赖于WinINET代理的应用(如IE浏览器和其他浏览器)会把Web请求发送给Fiddler
    • New Viewer 打开新窗口,打开一个新的fiddler窗口
    • Load Archive 加载抓包文件,用于重新加载之前保存的fildder文档
    • Recent Archives 加载最近所保存的文件
    • Save 保存抓包文件,保存session会话
    • Import 导入其他格式的抓包文件,导入session会话
    • Export 导出其他格式的抓包文件,导出session会话

image.png

  • Edit 编辑
    • Copy 复制,复制选中Session的某些信息
    • remove 删除,删除全部、选择或未选中的Session
    • Select All 全选,选择Sessions列表的所有内容
    • Undelete 撤销
    • Paste as Sessions 黏贴,命令会基于剪贴板上的内容,生成一个或多个模拟的 Session
    • Mark 标记
    • Unlock for Editing 编辑
    • Find Session 查找

image.png

  • Rules 规则
    • Hide Image Requests 隐藏image请求
    • Hide CONNECTs
    • Automatic Breakpoints 自动断点请求拦截
      • Before Requests
      • After Responses
    • Customize Rules 自定义规则
    • Require Proxy Authentication 设置代理的认证
    • Apply GZIP Encoding
    • Remove All Encodings 去掉所有加密协议
    • Hide 304s
    • Request Japanese Content
    • Automatically Authenticate
    • User-Agents 替换useragent
    • Performance 性能测试
      • Simulate Modem Speeds 慢速访问
        • 精确限速
          • 修改用户脚本
      • Disable Caching 关闭缓存
      • Cache Always Fresh 缓存刷新

image.png

  • Tools 工具
    • Options 配置
      • General
        • image.png
      • HTTPS
        • 勾选 Decrypt HTTPS Traffic
        • Actions -> Trust Root Certificate 为浏览器安装证书(个人/受信任的根证书颁发机构)
        • image.png
      • Connections
        • 选中 Allow remote computers to connect(允许远程连接)
        • Act as system proxy on startup(作为系统启动代理)
        • image.png
    • WinINET Options windows 代理设置
    • Clear WinINET Cache 清除浏览器缓存
    • Clear WinINET Cookie 清除浏览器cookie
    • TextWizard 编码转换工具
    • Compare Sessions
    • Reset Script
    • Sandbox
    • View IE Cache
    • Win8 Loopback Exemptions
    • New Session Clipboard
    • HOSTS host管理工具

image.png

  • View 视图

工具栏

1eefde6211cb4656a815f5e1e9bde554~tplv-k3u1fbpfcp-jj-mark_0_0_0_0_q75.png

  • 工具栏
    • 聊天图标
      • 备注,增加会话备注,方便我们查看,可以通过前面菜单栏的save功能导出saz文件给他人看
    • Replay
      • 流重放,回放会话,想要重新请求会话,可以使用此功能(选中会话快捷键 R 重放一次),Shift+R,弹出提示框,输入重放次数
    • 关闭图标
      • 流删除,清空会话列表,也可以进行过滤列表,清除相应种类的会话
      • 9f213727dd3d4d24ac6f396b8b10f05d~tplv-k3u1fbpfcp-zoom-in-crop-mark_1512_0_0_0.webp
        • Remove all 删除所有
          • ctrl + X ,删除所有Session
          • Shift + Del 删除选中以外的Session
        • images 删除所有图片
        • CONNECTs 删除所有CONNECTs的请求;其实就是Tunnel to的部分
        • Non-200s 删除所有不是200的请求
        • Non-Browser 删除所有非浏览器请求
        • Duplicate response bodies 删除所有重复响应体的请求
    • GO
      • 执行流
        • 截获数据包修改后手动进行执行流
        • 使用请求往下走,这个可以和Fiddler断点进行使用
    • Stream
      • 流模式
        • 浏览器实时展现到fiddler中
      • fiddler 数据包模式分为 流模式和缓存模式
        • 缓存模式
          • 浏览器加载完之后展现到fiddler中
    • Decode
      • 流解密
        • 避免手动解密,表示把http协议的响应体解码出来,对所有响应解码
    • Keep: All sessions
      • 根据电脑配置情况指定加载数据包
      • 设置保存会话的数量,会话越多占用内存越大
    • Any Process
      • 抓取进程的流,指定抓取流的进程
    • Find
      • 查找,查找会话请求,一般会话比较多的时候可以使用此工具进行查找和备注颜色
      • 查找范围,请求和响应中,头部信息或者body信息中,或者单独进行配置查找同时我们还可以在下面勾选正则匹配的规则
    • Save
      • 保存,文件格式 .saz
    • 照相机图标
      • 截图,保存截图功能,5秒后就把截图保存下来了,保存后直接可以在fiddler上进行查看
    • 时间图标
      • 计时
    • 浏览器图标
      • 打开浏览器
    • Clear Cache
      • 清除缓存
    • TextWizard
      • 解码工具,快速编码和解码,点击后,选择解码方式,get请求,url编码
    • Tearoff
      • 拆分右侧
    • 电脑
      • 本机网络信息,可以看到本机ip

会话列表

字段名描述
#HTTP Request的顺序,从1开始,按解页面加载请求的顺序递增
Host请求地址的域名
URL请求的服务器路径和文件名,也包括GET参数
Body请求的大小,以byte为单位
Content-Type请求响应的类型(Content-Type)
ResultHTTP响应的状态码
Protocol请求使用的协议(如HTTP/HTTPS/FTP)
Caching请求的的缓存过期时间或缓存控制 header等值
Process发出此请求的Windows进程及进程ID
Commments用户通过脚本设置或者右键菜单给此session增加的备注
Custom用户可以通过脚本设置的自定义值
  • 自定义脚本
    1. 菜单,Rules->Customize Rules,打开“Fiddler ScriptEditor”
    2. Ctrl+F查找“static function Main()”字符串,然后添加以下代码
      • FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
  • 右键
    • image.png

image.png

命令行

  • ?text
    • Fiddler 会高亮所有 URL 匹配问号后的字符的全部 session,按回车聚焦到匹配的 session 上
    • 示例:?searchtext
  • >size
    • 选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上
    • >40000 (选择响应大于 40kb 的请求)
  • <size
    • 选择响应尺寸大于指定大小的全部 session。按回车聚焦到匹配的 session 上
    • 示例:<5k (选择响应小于 5kb 的请求)
  • =status
    • 选择响应 HTTP 状态等于指定值的全部 session。按回车聚焦到匹配的 session 上
    • 示例:=200 (选择 请求成功的请求)
  • @host
    • 选择包含指定 HOST 的全部 session。按回车聚焦到匹配的 session 上
    • 示例:@msn.com (选择 www.msn.com、login.msn.com 等 session)
  • bold text
    • 加粗显示 URL 包含指定字符的全部 session
    • 示例:bold test.php (加粗显示 URL 中包含 test.php 的 Session)
    • bold (不带参数表示清空所有加粗显示的 Session)
  • bpafter
    • 收到响应后中断 URL 包含指定字符的全部 session 响应
    • 示例:bpafter test.php (中断 URL 中包含 test.php 的 Session)
    • bpafter (不带参数表示清空所有设置断点的 Session)
  • bpu
    • 在发起请求前中断 URL 中包含指定字符的全部 session 响应
    • 示例:bpu test.php (中断所有请求 URL 中包含指定字符的 Session)
    • bpu (不带参数表示清空所有设置断点的 Session)
  • bps
    • 中断 HTTP 响应状态为指定字符的全部 session 响应
    • 示例:bps 404 (中断所有响应 404 的 Session)
    • bps (不带参数表示清空所有设置断点的 Session)
  • bpv 或 bpm
    • 中断指定请求方式的全部 session 响应
    • 示例:bpv POST (中断所有 POST 请求的 Session
    • bpv (不带参数表示清空所有设置断点的 Session)
  • cls 或 clear
    • 清除所有 session
    • 示例:cls
  • dump
    • 将所有 session 打包到 C 盘根目录下的一个 zip 压缩包中
    • 示例:dump
  • g 或 go
    • 继续所有中断的 Session
    • 示例:g
  • help
    • 用浏览器打开 QuickExec 在线帮助页
    • 示例:help
  • hide
    • 将 Fiddler 隐藏到任务栏图标中
    • 示例:hide
  • urlreplace
    • 将 URL 中的字符串替换成特定的字符串
    • 示例: urlreplace SeekStr ReplaceWithStr
    • urlreplace (不带参数表示清空所有之前的设置)
  • start
    • 将 Fiddler 为系统代理
    • 示例:start
  • stop
    • 将 Fiddler 从系统代理注销
    • 示例:stop
  • show
    • 将 Fiddler 从任务栏图标恢复为图形界面,此命令在命令行工具ExecAction.exe 中使用
    • 示例:show
  • select
    • 选中响应类型 (Content-Type) 为指定字符的所有 session
    • 示例:select image select css select json
  • allbut 或 keeponly
    • 将不是该类型 (Content-Type) 的session删除,留下的都是该类型的响应
    • 示例:allbut json
  • quit
    • 退出 Fiddler
      • 示例:quit

状态栏

  • 代理状态
    • 显示的 Fiddler 是否处于系统代理状态,(有capture表示开启状态,点击清除图标取消代理),可以用快捷键 F12 切换或者点击该区域
  • 会话选择
    • All Processes — 捕获所有进程的请求
    • Web Browsers — 捕获 Web 浏览器的请求
    • Non-Browser — 捕获非 Web 浏览器的请求
    • Hide All — 隐藏所有请求
  • 断点设置
    • 不设置断点
    • 所有请求在断点处被暂停
      • 点一下请求前断点,before response:这个是打在request请求的时候,未到达服务器之前
      • 修改请求并Break on Response(执行请求),然后进入中断响应
    • 所有响应在断点处被暂停
      • 点两下时响应断点,.after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前
      • 修改响应 Choose Response -> Run to Comp(执行响应)
  • 选择Session数
    • 显示共选择了多少 session 及 session 总数
  • 附加信息
    • 如果是刚打开 Fiddler,会显示什么时间加载了 CustomRules.js;如果选择了一个 Session,会显示该 Session 的 URL;如果在 QuickExec 命令行输入一个命令,就会显示命令相关信息

辅助标签加工具

  • Statistics 统计分析
    • Http或Https请求的性能和其他数据分析,如DNS解析时间,TCP/TP建立连接的时间(TCP三次握手的时间)、SSL连接的时间(针对https请求)等信息
  • Inspectors 检查器
    • 直接可以双击会话打开检查器,或选择会话后点击检查器
    • 以不同的形式展示请求或部分请求报文、响应或部分响应报文
    • 请求部分
      • image.png
      • Headers:显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等
      • TextView:显示 POST 请求的 body 部分为文本
      • SyntaxView:语法的格式
      • WebForms:显示请求的 GET 参数 和 POST body 内容,特别说明,这里的QueryString为url后接的内容;这里 body 为是 application/x-www-form-urlen-coded 格式。(form表单post请求默认是这种查看方式)
      • HexView: 用十六进制数据显示请求
      • Auth :显示 header 中的 Proxy-Authorization 和 Authorization 信息
      • Cookies:显示请求的cookie信息
      • Raw:原生的纯文本(用的较多)
      • XML:如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示
    • 响应部分
      • image.png
      • Transformer :显示响应的编码信息
      • Headers :用分级视图显示响应的 header
      • TextView : 使用文本显示相应的 body
      • SyntaxView: javaScript 语法视图(相较text有高光)
      • ImageVies :如果请求是图片资源,显示响应的图片
      • HexView : 用十六进制数据显示响应
      • WebView :响应在 Web 浏览器中的预览效果
      • Auth:显示响应 header 中的 Proxy-Authorization 和 Authorization 信息
      • Caching : 显示此请求的缓存信息
      • Cookies:显示返回的cookie信息
      • Raw:原生的纯文本(用的较多)
      • JSON:返回的响应内容如果是一个json格式的,这里会显示
      • XML:如果相应的 body 是 XML 格式,就是用分级的 XML 树来显示它
  • AutoResponder 自动响应器
    • image.png
      • Enable rules(使用规则)
      • Unmatched requests passthrough(放行未匹配的请求)
    • 可用于拦截某一请求,进行如下操作
      • 请求重定向到本地的资源
        • 一个文件存在问题,使用fiddler测试文件是否正常再进行替换服务器上的文件
      • 使用Fiddler的内置响应
      • 自定义响应
    • 具体操作步骤
      1. 选择会话或者复制请求的URL,然后点击 Add Rule(或者左键按住,并拖动需要请求的url到右侧列表面板,此时url自动填充在Rule Editor处)
      2. 设置响应的内容,可以选择Fiddler的内置响应或者是重定向至用户本地文件(或者点击规则,鼠标右键,选择Edit Response,进行自定义响应)
      3. 同时选中 Enable rules(使用规则)和 Unmatched requests passthrough(放行未匹配的请求)
    • c5a1a501c7b1bb8f03d06afef661b321.png
  • Composer 设计器
    • 设计请求,修改请求参数,进行简单的接口测试
    • 具体操作
      1. 鼠标左键拖动请求的url至右侧Composer面板处,请求信息会自动填充,修改请求参数,点击Execute
  • Filters 过滤器
    • 忽略不想显示的请求,过滤出想要的请求,是一个多维度的过滤器。过滤器要起作用,必须选中Use Filters ,不用的时候记得关闭,防止出现抓不到包的情况
      • 7d68d1b06427c2cc90a967ecc047063b.png
    • Hosts 主机
      1. 域过滤
        • Show only Intranet Hosts:仅显示局域网的请求
        • Show only Internet Hosts:仅显示广域网的请求
        • No Zone Filter:无域限制(默认)
      2. 主机过滤
        • No Host Filter:无主机限制(默认)
        • Hide the following Hosts:隐藏输入到下面文本框的主机(域名或者IP)的请求(可以选择请求,单击右键,Copy >> This Column 的方式复制请求的主机)
        • Show only the following Hosts:仅显示输入到下面文本框的主机(域名或者IP)的请求
        • Flag the following Hosts:含有下面文本框的主机(域名或者IP)的请求做标记(即加粗显示)
    • 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:设置请求头中添加指定的内容
    • 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的请求中设置断点(响应后设置断点)
    • 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的响应
    • 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响应
    • Response Headers 响应头
      • Flag responses that setcookies:将响应中设置了cookies的请求标记显示(斜体显示)
      • Flag responses with headers:将响应头中包含指定内容的请求标记显示(加粗显示)
      • Delete responseheaders:删除响应中指定的响应头
      • Set response header:将响应头中添加指定的内容