fiddler使用教程

一、总述

  本文将按照fiddler原理、菜单栏、工具栏、会话列表、命令行-状态栏、以及辅助标签栏六个部分对fiddler进行说明。

 

 二、fiddler原理

  通过监听客户端和服务端之间的通信,来获取我们想要的数据信息。

  • 首先FIddler截获客户端浏览器发送给服务器的fiddler,此时还未建立握手;
  • 第一步:fiddler向服务器发起请求进行握手,获取到服务器的CA证书,用根证书公钥进行解密,验证服务器数据签名,获取服务器CA证书公钥;
  • 第二步:Fiddler伪造自己的CA证书,冒充服务器证书传递给客户端浏览器;
  • 第三步:客户端浏览器生成HTTP(S)通信用的对称密钥,用fiddler伪造的证书公钥加密后传递给服务器,被Fiddler截获;
  • 第四步:Fiddler把截获的密文用自己伪造证书的私钥解开,获得HTTPS通信用的对称密钥;
  • 第五步:Fiddler将对称密钥用服务器证书公钥加密传递给服务器,服务器用私钥解开后建立信任,握手完成 ,用对称密钥加密消息,开始通信;
  • 第六步:Fiddler接收到服务器发送的密文,用对称密钥解开,获得服务器发送的明文,再次加密,发送给客户端浏览器;
  • 第七步:客户端向服务器发送消息,用对称密钥加密,被Fiddler截获后,解密获得明文。

 

 fiddler自己的系统代理监听端口:8888

 

 chrome浏览器和IE浏览器默认使用的是系统(本机)代理,其他浏览器如firefox需要在浏览器中设置。

三、菜单栏

  • file:主要对会话列表的内容进行展示、保存、导出、导入等操作

  • edit:对会话列表中的内容进行复制、删除、全选、标记、搜索等操作。

  • rules:制定规则
    • hide image requests:隐藏图片请求
    • hide connects:隐藏https连接
    • automatic breakpoints:自动断点设置
    • customize rules:弱网模拟,默认是上传时1kb发送延迟300ms;下载时1kb延迟150ms;参数可更改,设置后同时勾选rules-->performance-->simulate modem speeds生效

  

 

    •  require proxy authentication:密码代理验证  
    • apply gzip encoding:使用gzip编码
    • remove all encoding:删除全部编码
    • hide 304s:隐藏304会话
    • request Japanese content:发送日文请求
    • automatically authenticate:自动进行身份验证
    • user-agents:用户代理设置,支持主流浏览器
    • performance:低速网络
      • simulate modem speeds
      • Performance--->Disable Caching禁止缓存
      • Performance--->Cache Always Fresh新的缓存

 

 

 

 

  • tools
    •   tools工具栏中本文只介绍options中的https和connections两个模块

 

    • https:fiddler默认接收https和http请求,但是只在会话列表中显示http请求,https请求在会话列表中是看不到的,https需要证书进行解密。那么怎么设置让我们用户能在会话列表中看到https请求的内容呢?
      • tools-->options-->https,然后勾选第一项【capture https connects】和第二项【decrypt https traffic】,然后再在【谷歌浏览器】中输入www.baidu.com,如果仍然抓不到https的请求,那么就点击【actions】----->【reset all certificates】------>根据提示重装证书---->点击【actions】下面的【open windows certificates manager 】(证书管理器)---->【操作】---->【查找证书】------>【搜索fiddler】如果搜索到就表示https证书重装成功
      • Firefox上抓https流量:打开【Firefox】--->【设置】--->【使用系统代理】---->【配置系统代理】---->【tools】---->【options】----->【https】---->【actions】---->【reset all certificates】--->【根据提示重装证书,有证书就不用重装了】---->【export root certificates to desktop】---->【导出到桌面】----->【在Firefox的设置中安装证书】------>【重启fiddler】和【Firefox】
  • connections:默认监听端口为8888
    • Android抓app流量包:【fiddller】--->【tools】---->【options】----->【connections】---->【allow remote computers to connect】---->【将手机连接在与fiddler相同的网络下】---->【打开手机WLAN】---->【连接WLAN后,点击修改网络】---->【设置代理】----->【手动】----->【服务器主机名:fiddler安装在哪台电脑,就填哪个IP和端口】----->【打开手机浏览器。并访问主机IP和端口】---->【下载fiddler证书】----->【证书下载后,打开手机设置】---->【安全】----->【加密和凭据】----->【从存储设备安装】----->【选择下载好的证书进行安装】---->安装成功后,查看受信任的证书----->用户,如果用户中有证书,表示证书安装成功,就可以启动app进行测试了,测试完成后记得关闭代理,不然可能无法上网。

 

  • view:视图相关
    • Show Toolbar ——控制Fiddler工具栏是否可见(显示工具栏)
    • Default Layout ——默认布局
    • Stacked Layout ——堆叠布局
    • Wide Layout ——全部布局
    • Tabs ——制表符
    • Statistics ——性能统计分析 页签,快捷键 F7
    • Inspector ——检查器 页签,快捷键 F8
    • Composer——设计器(构造)页签,快捷键 F9
    • Minimize to Tray——缩小为任务栏图标,快捷键 Ctrl + M
    • Stay on Top——使Fiddler窗口置顶
    • Squish Session List——水平收缩/展开 Session 列表,快捷键 F6
    • AutoScroll Session List——控制当添加新的Session时,Fiddler是否会自动滚动到Session列表的底部
    • Refresh——刷新,快捷键 F5

  • help:帮助

四、工具栏

从左至右依次为:

  • winconfig:配置Windows上自带的应用程序
  • 消息框:备注信息,用于会话列表中展示session中的备注信息
  • replay:重放请求,可用于重放攻击。选中会话列表中的某一条请求,点击replay或者按R键,可以重新发送一次请求;shift+replay:可以批量发送请求;
  • X:删除
  • go:跳过,需配合断点功能使用
  • stream:分为流模式和缓冲模式两种,默认为缓冲模式。流模式:实时通信模式,有信息就返回;缓冲模式:等待所有的请求都到一起在返回。
  • decode:解码,有的会话乱码时,点击这个按钮可以解码
  • keep:all sessions:可选择会话列表中展示session的数量
  • any process:选择监听的程序后,fiddler就只监听该程序,如点击按钮,然后拖拽至某个网页,就可以监听该网页的通信请求。默认监听所有的程序。
  • find:查找
  • save:保存
  • 截图
  • 时钟:计时器
  • browse:选择浏览器
  • clear cache:清除缓存
  • textwizard:编码工具/解码工具
  • tearoff:分离面板
  • msdn search:开发者网站的搜索功能
  • online:本机的在线信息

 

 五、会话(session)列表(监控列表)

一个请求就是一个会话,功能如下:

  • #:默认正序,点击后变为倒序
  • result:响应状态码
  • protocal:协议
  • host:主机名
  • url
  • body:body大小(kb)
  • content-type:内容类型
  • process:进程信息
  • comments:备注信息
  • custom:自定义
    •   以上这些都是可以拖动的,拖动相当于横向排序

 六、命令行和状态栏

  • 命令行:在命令行中输入help,可以转到官方帮助文档
  • capturing:捕获,录制会话。出现capturing表示fiddler设置了代理,点击后,表示取消代理
  • all process:显示所有进程,可供选择
  • 断点:点一下表示设置”请求前断点“(请求由客户端发送至fiddler,而fiddler还没有将请求发送至服务端,点击”go“后,可以将请求由fiddler发送至服务端),点两下表示设置”响应后断点“(响应已经从服务端返回至fiddler,但fiddler还没有将请求返回至客户端,点击”go“后,可以将返回的响应结果由fiddler发给客户端)
  • 数字:表示当前会话列表总共有多少个会话,选中某个会话后,变为该   会话所在序号/会话总数  ,同时展示该会话的附加信息

 七、辅助标签栏

  • get started:首页
  • statistics:性能统计分析。统计http或https请求的性能和其他数据分析,如dns,解析时间,建立tcp/ip连接时间等
  • inspectors:检查器,检查一个请求。记录http请求的信息,一个http请求包含请求报文(请求行、请求头、空白行和请求体)和响应报文(响应状态行、响应头、空白行和响应体)两个部分。

  •  autoresponder:自动响应器:可以用于拦截某一请求,进行如下操作
    • 重定向fiddler的内置响应
    • 使用fiddler的内置响应
    • 自定义响应

  例如,当用户请求【www.baidu.com】时,就重定向到【https://mail.163.com/】

 

 【自动响应结果】

 

 【使用fiddler内置的响应结果】将百度首页重定向响应结果为404

 

 【重定向到本地资源】

 

如下图所示进行操作:【rule editor】中第一项为百度首页的图片地址,第二项点击右侧的【下拉箭头】,然后选择【find a file】,双击选择图片后,点击【保存】按钮。 

 

 

 

 【响应结果】

 

 

 

  • composer:设计器。可用于设计一个请求报文,然后execute执行,可用于接口测试

 

  • filter:过滤器。点击【filters】后,然后勾选【use Filters】就可以设置过滤的内容了。

 

 

 

八、断点应用

  断点根据应用场景可以分为【全局断点】和【局部断点】,如下图所示的两种方式都是设置【全局断点】。

  全局断点:会话列表中所接收到的所有请求都设置断点。

  局部断点:只针对某一个或某一类请求设置断点。

1、全局断点设置

 

 

 【请求前断点】

 

 

 【响应后断点】

 

 

 

 

 

 点击【replay】进行重放攻击后,【浏览器】中网络中断,点击【go】后,【浏览器】转圈的图片正常显示,同时【fiddler】请求正常接收。

 

 

 

 

 

 

 2、局部断点设置

  用户想要设置局部断点,需要通过命令行去设置。

  【请求前断点】:bpu + 空格 +匹配内容,如我要将【www.baidu.com】中的请求设置为局部断点

 

 

 按enter键,然后再打开百度首页,发现【百度】点击无反应,同时【fiddler】出现上图所示的【请求前断点】标记。

  【响应后断点】:在命令行输入【bpafter】+ 【空格】+【匹配内容】,如bpafter www.baidu.com,百度网络中断,同时fiddler所有符合匹配内容为www.baidu.com的请求都设置了响应后断点。

 

 

 

 

 

 【中止断点】:bpu+空格+enter键

 

posted @ 2022-10-24 22:26  小疯狗  阅读(2034)  评论(0编辑  收藏  举报