一篇文章搞定fiddler抓包

哈喽,大家好!我是minisummer!首先感谢您的关注!
今天给大家分享的内容是fiddler抓包工具的使用。

fiddler简介

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用且实用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

fiddler工作原理

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。 当Fiddler退出的时候它会自动注销, 这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。 解决的办法是重新启动下Fiddler。


fiddler工作原理

fiddler下载安装

Fiddler 下载地址 :https://www.telerik.com/download/fiddler
fiddler汉化包汉化插件:https://blog.qcnhy.cn/2019/08/16/2/

fiddler基础配置

配置证书

点击Tools->Options->HTTPS(配置完后记得要重启Fiddler)


fiddler配置证书.png

信任证书

信任证书

image.png

查看一下证书,Tools->Options->HTTPS->Actions—>open windows certificate Manager


image.png

image.png

导出证书Tools->Options->HTTPS->Actions—>Export Root
image.png

火狐浏览器中导入证书

image.png

image.png

火狐浏览器设置fiddler代理
配置fiddler监听端口

image.png

配置抓取HTTPS

点击Tools->Options->HTTPS(配置完后记得要重启Fiddler)
选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate


fiddler配置抓取https.png

配置抓取移动端

点击Tools->Options->Connections(配置完后记得要重启Fiddler)


image.png

配置端口

点击Tools->Options->Connections(配置完后记得要重启Fiddler)


image.png

Android 手机上配置fiddler

1.首先查看电脑的 IP 地址,确保手机和电脑在同一个局域网内。
2.将 Fiddler 代理服务器的证书导到手机上。
步骤一:在手机上打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了。
步骤二:打开 WiFi 设置页面,选择要连接的 wifi ,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”。

ios手机上配置fiddler

同Android 机一样配置即可。

fiddler面板介绍

fiddler主面板

image.png

fiddler菜单栏详解

file

1、Capture Traffic:可以控制是否把Fiddler注册为系统代理。
2、New Viewer:打开一个新的fiddler窗口
3、Load Archive:用于重新加载之前捕获的以SAZ文件格式保存的数据包。
4、Save:支持以多种方式把数据包保存到文件中。
5、Import Sessions...:支持导入从其他工具捕获的数据包,也支持导入以其他格式存储的数据包。
6、Export Sessions...:把Fiddler捕捉到的回话以多种文件格式保存。
7、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler。

edit

1、Copy:复制会话。
2、Remove:删除会话。
3、Select All:选择所有会话。
4、Undelete:撤销删除会话。
5、Paste as Session把剪贴板上的内容粘贴成一个或多个模拟的会话。
6、Mark:选择一种颜色标记选中会话。
7、Unlock for Editing 解锁会话。
8、Find Session...打开Find Session窗口,搜索捕获到的数据包。


rules

1、Hide Image Request:隐藏图片回话。
2、Hide CONNECTS:隐藏连接通道回话。
3、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。Ignore Image触发器控制这些断点是否作用于图片请求。
4、Customize Rules...:打开Fiddler脚本编辑窗口。
5、Require Proxy Authentication:,要求客户端安装证书。该规则可以用于测试HTTP客户端,确保所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。
6、Apply GZIP Encoding:只要请求包含具有gzip标识的Accept-Encoding请求头,就会对所有响应使用GZIP HTTP进行压缩(图片请求除外)。
7、Remove All Encoding:删除所有请求和响应的HTTP内容编码和传输编码
8、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的所有回话。
9、Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送。
10、User-Agents:把所有请求的User-Agent请求头设置或替换成指定值。
11、performance:模拟弱网测试速度。

image.png

1、Options...:打开Fiddler选项窗口。
2、WinINET Options...打开IE的Internet属性窗口
3、Clear WinINET Cache:清空IE和其他应用中所使用的WinINET缓存中的所有文件。
4、Clear WinINET Cookies:清空IE和其他应用中所发送的WinINET Cookie
5、TextWizard...:选项会启动TextWizard窗口,对文本进行编码和解码。
6、Compare Session:比较回话。
7、Reset Script:重置Fiddler脚本。
8、Sandbox:打开http://webdbg.com/sandbox/
9、View IE Cache:打开IE缓存窗口。

image.png

1、Show Toolbar:控制Fiddler工具栏是否可见
2、Default Layout、Stacked Layout、Wide Layout三种界面布局
3、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M )
4、Squish Session List:控制回话列表是否水平收缩。
5、AutoScroll Session list:添加新的回话时,自动滚动到回话列表底部

fiddler工具栏详解

image.png

fiddler会话列表详解

image.png

fiddler功能页签详解

image.png

Statistics页签

通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行速度性能优化。

inspectors页签(常用页签)

它提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求展示,下部分为响应展示。

AutoResponse页签(常用页签)

它可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件作为返回内容。

composer页签(常用页签)

支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。

FiddlerScripts页签

打开Fiddler脚本编辑。

log页签:

打印日志

Filters页签(常用页签)

过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。

Timeline页签

时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为X轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline 便会显示指定内容从服务端传输到客户端的时间。

fiddler命令行详解

Fiddler命令行可以输入命令操作回话列表,常见命令:

help     打开官方的使用页面介绍,所有的命令都会列出来。
cls       清屏 (Ctrl+x 也可以清屏)
select    选择所有相应类型的回话(如select image或select css)。
?sometext 查找字符串并高亮显示查找到的会话。
\>size     选择请求响应大小小于size字节的会话。
=status/=method/@host 查找状态、方法、主机相对应的会话
1uit      退出fiddler
bpafter xxx 中断URL包含指定字符的全部回话响应
bps xxx     中断HTTP响应状态为指定字符的全部回话响应。
bpv xxx     中断指定请求方式的全部回话响应
bpm xxx     中断指定请求方式的全部回话响应。等同于bpv xxx
bpu xxx:    与bpafter类似。

fiddler状态栏详解

image.png

fiddler抓包实战

实战一:fiddler抓取网页数据

在火狐浏览器中打开百度搜索,输入fiddler,点击百度一下按钮,浏览器与服务器交互的数据全被fiddler抓取下来了。


image.png

实战二:fiddler模拟手机端数据

参考:https://www.jianshu.com/p/041871156513

实战三:fiddler模拟弱网测试

限速对于web前端研发是非常重要的,由于开发者的机器一般配置都很高,并且是在localhost下来调试程序,所以很难模拟到用户的真实使用情 况,如正在下载js,css等静态资源的时候,页面的一个渲染情况。当网速很慢的时候,我们更希望看到的是先渲染出用户界面,而不是让用户看到一片空白。 那么这个时候,网络限速就能很方便在localhost针对类似的情况来做性能调试与优化。
我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。

模拟稳定的弱网状态

1.自定义弱网规则
设置我们需要模拟的网速,Rules→ Customize Rules,点击该选项后会出现一个文本编辑框。


image.png

在这个文本编辑器中使用Ctrl+F使用搜索功能搜索关键字:m_SimulateModem,将其替换为以下代码:
代码中:request-trickle-delay代表的是你网络请求的延迟时间,response-trickle-delay代表的是网络响应的延迟时间,单位都是毫秒。

        if (m_SimulateModem) {
            // Delay sends by 300ms per KB uploaded. 每延迟300ms发送1kb的数据,也就是每1s发送10/3kb的数据
            oSession["request-trickle-delay"] = "300"; 
            // Delay receives by 150ms per KB downloaded.每延迟150ms下行1kb的数据
            oSession["response-trickle-delay"] = "150"; 
        } 
image.png

2.在fiddler中启用Rules → Performances → Simulate Modem Speeds :模拟调制解调器的速度


image.png

模拟不稳定的弱网状态

1.自定义弱网规则
可能我们在测试中不会想要一个一直虚弱的网络环境,而是随机强弱的网络,这样比较贴切我们的真是情况,那么我们可以修改上述代码为:
这里的randInt(1,2000)应该很好理解,代表1-2000中的一个随机整数,这样就会出现偶尔有延迟偶尔网络又良好的情况。

static function randInt(min, max) {
    return Math.round(Math.random()*(max-min)+min);
}
if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = ""+randInt(1,2000);
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = ""+randInt(1,2000);
}
image.png

2.在fiddler中启用Rules → Performances → Simulate Modem Speeds :模拟调制解调器的速度

实战四:fiddler模拟mock测试

mock 的意思是模拟,也就是模拟接口返回的信息,用已有的信息替换它需要返回的信息,从而实现对上级模块的测试。
1.先在本地创建一个fiddler_mock.txt文件

{
    "code": "200 OK",
    "name": "minisummer",
    "url": "https://www.jianshu.com/u/0422c719f7ef"
}

image.png

2.选择百度首页接口,并且点击“autoresponde”--》“add rule”,添加到右框中,勾选三个选项,点击“find a file”,选择你刚刚创建的文件,再点击“保存”。
image.png

3.再在浏览器中输入:www.baidu.com,按“回车”键,就得到了我们自定义的数据。
image.png

实战五:fiddler设置断点修改请求和响应数据

拦截HTTP请求后修改方式有两种,一种是临时修改,即结果只对当次请求有效,另一种是永久修改,可以通过urlreplace命令实现。
方法一:开启断点:规则->自定义断点
1)before request。也就是发送请求之前,Fiddler代理中转之前,这时可以修改请求的数据。


image.png

2)after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
这里选择find file,修改响应内容为fiddler_mock.txt文件的数据,点击“运行到完成”


image.png

image.png

image.png

关闭断点:规则->自定义断点->禁用

方法二:通过命令行设置断点
1)bpu 域名 :在请求开始时中断
在命令行输入命令,修改请求数据:bpu www.baidu.com

image.png

2)退出断点:bpu
取消断点,在命令行输入命令:bpu

image.png

3)bpafter 域名 :在响应到达时中断
在命令行输入命令,修改响应数据:bpafter www.baidu.com
image.png

4)退出断点:bpafter
取消断点,在命令行输入命令:bpafter


image.png

实战六:fiddler接口测试

1.在右侧点击“composer”的选项,
2.在parsed中进行根据http发送的请求进行选择,我们模拟post请求,
3.添加post的url地址
4.选择http协议的版本 ,
5.填写post请求的header和body ,
6.最后点击 Execute,就可以发送post请求,在左侧可以查看到发送的请求记录。
7.点击“会话详细”可以查看post响应的数据。


image.png

image.png

实战七:fiddler流量测试

在测移动APP的时候,有个非常值得关注的测试点:流量测试。那么如何通过fiddler工具把耗流量比较大的请求给抓取出来呢?
我们只需要过滤出大于50k的请求(也可以设置大于200k,看自己的需求),勾选Hide smaller than 50KB(隐藏小于50k的请求),Action按钮勾选:Run filterset now


image.png

fiddler总结

fiddler

出处:https://www.cnblogs.com/csmashang/p/12760587.html
https://blog.csdn.net/u010618194/article/details/76652513

请大家多多指教~
以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。
注:转载请注明出处,商用请征得作者本人同意,谢谢!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342