阅读 122

Fiddler抓包(下载安装及使用)

Fiddler Classic(经典版),这个版本是免费的,不过只能在Windows上使用。

Fiddler Everywhere可以在所有平台使用,并且相当于Fiddler Classic+postman,但是是收费的。

如果只作为抓包工具经典版就够用了,可以直接点击下方链接前往下载页面。

下载链接:www.telerik.com/download/fi…

image-20211001030349465.png

填好信息之后勾选这两项,点击下载

2.安装

点击同意后选择安装路径安装。

二、抓包

1.基础操作

1.1抓取请求

  • 界面左侧Web Sessions会话列表中的是HTTP数据包。

  • 界面右侧Inspectors用于查看会话的内容,上边是Request请求信息,下边是Response响应信息。

  • 左下角空白处点击变成Capturing会开始抓包

    • 代理手机时,Capturing无论是否点击,都会自动抓包,抓取想要的包后,可点此隐藏其他抓包

    • ALL Processes抓取所有包

    • Web Browsers只抓取PC中浏览器的包

    • Non-Browser抓取非浏览器的包

    • Hide All隐藏所有代理

  • 字段说明

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

1.2删除请求

  • 方法1:点击工具栏中的×,删除请求。

  • 方法2:session列表下的黑框QuickExec中输入cls或clear删除请求。

  • 快捷键Ctrl+x

1.3过滤请求

  • 点击右侧选项卡中的Filters

  • 勾选User Filters

  • Host Filter选择Show only the following Hosts

  • 在下方框中填入想要过滤查看的主机地址,以“;”分隔。

  • 点击Actions,选择Run filterset now

1.4抓取HTTPS

默认只抓取HTTP协议的网页,想抓取HTTPS则需要:

  • 打开Tools--Options--HTTPS选项卡

  • 勾选Capture HTTPS CONNECTs

  • 勾选Decrypt HTTPS traffic

  • 勾选Ignore server certificate errors(unsafe)忽略证书(如果不安装fiddler证书就如此)

2.HTTP请求与响应

image-20211004021645713.png

3.移动端抓包

  • 手机和电脑必须在同一个局域网: 1.手机和电脑连同一个WiFi 2.手机连WiFi,电脑用网线连接开启这个WiFi的无线路由 3.电脑开热点,手机连热点

  • 开启fiddler代理,Tools-Options-Connections , 勾选 Allow remote computers to connect(尽量能勾选的都勾上), 点击OK

  • 查看自己网卡IP

  • 在移动端连接wifi,并且设置代理IP(电脑端网卡IP)与端口(8888)

  • 移动端访问网页输入代理IP和端口,点击FiddlerRoot certificate下载Fiddler的证书

  • 安装证书(安装方式不同设备会有区别,可以自己试探或者上网找教程,如果不能安装显示不能读取证书可以试试去设置里搜索CA证书,验证密码后安装)

  • 安装证书成功后,可以用手机访问应用,就可以看到截取到的数据包

4.Fiddler内置命令与断点

FIddler断点功能就是将请求截获下来,但是不发送,此时可以做一些更改操作。

  • QuickExec命令

命令对应请求项介绍示例
?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

5.典型应用

  • web网页、手机APP抓包

  • 修改服务请求与响应

  • 前端性能分析及优化

  • 模拟弱网测试

三、应用场景

  • 通过抓包工具截取观察网站的请求信息,更深入了解网站

  • 通过用抓包工具截取、观察网站的请求与返回信息,帮助我们进行BUG的定位于描述

  • 通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能

1.辅助定位bug

  • 抓到HTTP数据包

  • 检查请求方式与接口地址是否有误

  • 检查返回的响应状态是否正常

  • 点击请求的WebForms,检查接口传递参数

  • 点击响应的JOSN检查接口返回的响应数据

2.构建模拟测试场景

  • 模拟发送请求,进行接口测试

    • 应用场景1:需求文档中说明,某个接口限制同一个账号只能请求一次,同一个设备只能请求一次

    • 应用场景2:存在页面输入限制,需要模拟特殊情况请求(例如特殊字符,空格等参数),测试程序处理机制

  • Mock接口返回数据,测试程序

    • 应用场景1:需要验证接口数据能否正常处理,但程序处于开发过程中,后台无法对发送请求给出响应

    • 应用场景2:需要验证程序针对404,500,502等不同状态的处理机制

2.1模拟发送请求

  • Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求

  • 点击Composer

  • 设置请求方法,请求地址、协议

  • 设置请求header

  • 设置请求body

  • 发送请求

  • 查看响应

2.2模拟返回相应数据

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

  • 点击AutoResponder

  • 选择请求,点击Add Rule添加规则

  • Rule Editor中选择响应方式

  • Save

  • 勾选三个选项

    • Enable rules

    • Unmatched requests passthrough

    • Enable Latency

3.模拟弱网环境操作

进地铁、上公交、进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。

  • 启动模拟调制解调器速度来模拟弱网

    • Rules--Performance--Simulate Modem Speeds

  • Customize Rules(Ctrl+R)自定义规则

    • if (m_SimulateModem) {             // Delay sends by 300ms per KB uploaded.             oSession["request-trickle-delay"] = "300";              // Delay receives by 150ms per KB downloaded.             oSession["response-trickle-delay"] = "150";          } 复制代码

    • 在上述函数中用Math.random()方法可以模拟波动的网络

    • if (m_SimulateModem) {      var t = int(Math.random()*500)             // Delay sends by 300ms per KB uploaded.             oSession["request-trickle-delay"] = ""+ ( 2 * t );              // Delay receives by 150ms per KB downloaded.             oSession["response-trickle-delay"] = "" + t;          } 复制代码

  • 延迟参数

    • 网络环境上/下行带宽(kbps)上/下行丢包率(%)上/下行延迟(ms)DNS延迟(ms)备注
      2G20/500/0500/4000
      3G330/20000/0100/1000
      4G40000/800000/015/100
      wifi33000/400000/01/10
      带宽有限环境32/320/0200/1000
      低丢包率、低时延的环境(上行)33000/4000010/0100/100200WiFi环境下即可设置测试
      低丢包率、高时延的环境(上行)33000/4000010/0350/350350、、、
      低丢包率、低时延的环境(下行)33000/400000/10100/100200、、、
      低丢包率、高时延的环境(下行)33000/400000/10350/350350、、、
      低丢包率、低时延的环境33000/4000010/10100/100200、、、
      低丢包率、高时延的环境33000/4000010/10350/350350、、、
      高丢包率的环境(上行)33000/4000090/0100/100200、、、
      高丢包率的环境(下行)33000/400000/90100/100200、、、
      高丢包率的环境33000/4000090/90100/100200、、、
      网络超时(响应)33000/400000/100100/100200、、、
      网络超时(请求)33000/40000100/0100/100200、、、
      网络超时(完全丢包)33000/40000100/100100/100200、、、
      无网(飞行模式或关闭网络)




4.前端性能分析及优化

  • 选中想查看的session列表

  • 点击Statistics进行请求的性能数据分析

  • 点击Collapse Chart即可查看所用语言的所占比

  • 点击Timeline即可查看页面各个元素的加载时间和顺序

问题解决

Q1.Fiddler启动后Chrome浏览器无法浏览网页?

  1. 打开Tools--Options--HTTPS选项卡;

  2. 点击Actions下拉选择Trust Root Certificate,弹框选yes,弹框选是(到这一步可能就解决了);

  3. 点击Actions下拉选择Export Root Certificate to Desktop,将fiddler证书导出到桌面;

  4. 打开谷歌浏览器,设置--高级--安全--管理证书;

  5. 导入证书

  6. 重启浏览器与fiddler。

Q2.如何屏蔽抓取特定端口?

在Fiddler中使用它,用Ctrl+R打开自定义规则,然后添加到OnBeforeRequest。

if (oSession.host=="localhost:9090"){     oSession["ui-hide"] = "true"; }


作者:seirin
链接:https://juejin.cn/post/7021763777460699150

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐