测试工程师得力助手:Fiddler和Wireshark进行抓包对比(实战)
liuian 2025-07-10 16:40 41 浏览
了解过网络安全技术的人都知道一个名词"抓包"。那对于局外人,一定会问什么是抓包?考虑到,大家的技术水平不一,我尽可能用非专业的口吻简单的说一下。
抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。黑客常常会用抓包软件获取你非加密的上网数据,然后通过分析,结合社会工程学进行攻击。所以,学会抓包,对于学好网络安全技术十分重要。
在我们做接口测试的时候,经常需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就需要用到抓包工具。而工程师和程序常用的抓包工具有哪些呢?今天我们就来简单聊一聊最常用的2种。
Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS的。
wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。
总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。
一、Fiddler
当启动fiddler,程序将会把自己作为一个代理,所以的http请求在达到目标服务器之前都会经过fiddler,同样的,所有的http响应都会在返回客户端之前流经fiddler。
Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书。
Fiddler的工作原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.
Fiddler 如何捕获Firefox的会话
能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。
Firefox 上通过如下步骤设置代理
点击: Tools -> Options, 在Options 对话框上点击Advanced tab - > network tab -> setting.
Firefox 中安装Fiddler插件
修改Firefox 中的代理比较麻烦, 不用fiddler的时候还要去掉代理。推荐你在firefox中使用fiddler hook 插件, 这样你非常方便的使用Fiddler获取firefox中的request 和response,当你安装fiddler后,就已经装好了Fiddler hook插件,你需要到firefox中去启用这个插件打开firefox tools->Add ons -> Extensions 启动 FiddlerHook
Fiddler如何捕获HTTPS会话
默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler Tool->Fiddler Options->HTTPS tab
选中checkbox, 弹出如下的对话框,点击"YES"
点击"Yes" 后,就设置好了
Fiddler的基本界面
看看Fiddler的基本界面
Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图
Fiddler的HTTP统计视图
通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化
QuickExec命令行的使用
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有:
help 打开官方的使用页面介绍,所有的命令都会列出来
cls 清屏 (Ctrl+x 也可以清屏)
select 选择会话的命令
.png 用来选择png后缀的图片
bpu 截获request
Fiddler中设置断点修改Request
Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法
第一种:打开Fiddler 点击Rules-> Automatic Breakpoint ->Before Requests(这种方法会中断所有的会话)
如何消除命令呢? 点击Rules-> Automatic Breakpoint ->Disabled
第二种: 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢? 在命令行中输入命令 bpu
二、Wireshark
Wireshark是另外一种抓包工具,这种工具比fiddler更强大,消息量更多。大家可能会问:有了fiddler,为什么还要用wireshark呢?这里说下,在测试中,发现用fiddler抓包,有些包是没有抓到的,比如在验证反作弊信息的时候,反作弊pingback信息的消息用fiddler就没抓到,用wireshark就抓到了。还有另外一种情况,就是在验证cna的时候,如果先用fiddler抓包,如果没有种下cna的时候,以后就永远没有cna了,情况很诡异。解决办法就是把包卸载了重新安装,第一次用wireshark抓包。
Wireshark优势:
1、强大的协议解析能力,一到七层全解码,一览无遗,对于协议细节的研究特别有帮助。
2、对于https加密流量,只要将浏览器的session key 自动导入wireshark,Wireshark可以自动解密https流量。
Wireshark不足之处:
尽管可以自定义过滤列表,但为了抓取一个特定TCP Flow /Session 流量需要写一个长长的过滤列表,这对于初学者很不友好。
操作实例:
wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。
点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。然后点击"Start"按钮, 开始抓包:
一、WireShark 界面
1、Display Filter(显示过滤器),用于过滤;
2、Packet List Pane(封包列表),显示捕获到的封包,有源地址和目标地址,端口号;
3、Packet Details Pane(封包详细信息), 显示封包中的字段;
4、Dissector Pane(16进制数据);
5、Miscellanous(地址栏,杂项)。
二、Wireshark 显示过滤
使用过滤是非常重要的,初学者使用wireshark时,将会得到大量的冗余信息,在几千甚至几万条记录中,以至于很难找到自己需要的部分。搞得晕头转向。过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。
过滤器有两种:
1、一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录
2、一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。 在Capture -> Capture Filters 中设置。
三、保存过滤
在Filter栏上,填好Filter的表达式后,点击Save按钮, 取个名字。比如"Filter 102",Filter栏上就多了个"Filter 102" 的按钮。
四、过滤表达式的规则
表达式规则
1.协议过滤 比如TCP,只显示TCP协议。
2.IP 过滤
比如 ip.src ==192.168.1.102 显示源地址为192.168.1.102,ip.dst==192.168.1.102,目标地址为192.168.1.102。
3.端口过滤
tcp.port ==80, 端口为80的
tcp.srcport == 80, 只显示TCP协议的愿端口为80的。
4.Http模式过滤
http.request.method=="GET", 只显示HTTP GET方法的。
5.逻辑运算符为 AND/ OR
五、封包列表(Packet List Pane)
封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。 你也可以修改这些显示颜色的规则, View ->Coloring Rules.
六、封包详细信息 (Packet Details Pane)
这个面板是我们最重要的,用来查看协议中的每一个字段。各行信息分别为
·Frame: 物理层的数据帧概况
·Ethernet II: 数据链路层以太网帧头部信息
·Internet Protocol Version 4: 互联网层IP包头部信息
·Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
·Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
七、Wireshark与对应的OSI七层模型
八、TCP包的具体内容
从下图可以看到wireshark捕获到的TCP包中的每个字段。
总结:
总的来说,两款抓包软件各有优缺点,选择的关键在于我们的需求是什么,当然,对于软件测试从业者而言,两款软件都是十分有必要学习的~
请关注+私信回复:“测试”就可以免费拿到Python测试开发大纲及软件测试学习资料,快速让自己变强!
相关推荐
- win10装机必备实用软件(win10电脑装机必备软件)
-
1、office大部分的版本如office2007、office2000、office2011、office2013、office2016、office365等都支持win10。2、需要注意...
- 迅雷无法下载的链接用什么下载
-
1.可以使用其他下载工具代替迅雷。2.迅雷可能无法下载的原因有很多,比如网络问题、软件故障等。其他下载工具可以提供类似的功能,但可能具有更好的稳定性和兼容性。3.一些常见的替代迅雷的下载工具包括...
- apple官方网站(apple官方网站旗舰店)
-
1、首先打开浏览器,输入https://www.apple.com/;2、即可浏览苹果官网。 苹果公司(AppleInc.)是美国一家高科技公司。由史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗·韦恩(R...
- 哪些手机用鸿蒙系统(都什么手机能用鸿蒙系统)
-
截至目前,国内有以下几款手机品牌可以装鸿蒙系统:1.华为:华为Mate40系列、P40系列、Mate30系列、MatePadPro系列等。2.荣耀:荣耀V40、荣耀30系列、荣耀X10系列等...
- 手机u盘读不出来了怎么修复(手机u盘读取不出来)
-
1、手机不支持OTG功能,所以将U盘连接到手机后,手机无法识别U盘的内容,因此显示不了;这种情况只能换台支持OTG功能的手机来连接U盘才行。2、手机支持OTG功能,但是使用的OTG线质量有问题导致无法...
- 笔记本散热器买哪种好(笔记本散热器买哪种好贴吧)
-
散热器有十大品牌:九州风神、超频三,酷冷至尊Tt、AVC、思民、捷冷、安钛克Antec、安耐美Enermax、海盗船Corsair。能位列十大品牌,每一种的质量和功能都有保障。、目前网上销量最高的是九...
-
- 打印机驱动一直安装失败(打印机驱动一直安装失败怎么办)
-
打印机驱动程序安装失败需要对电脑进行其他设置,详细步骤如下:1,在电脑桌面上找到【计算机】并用鼠标右击。2,右击后在出现的选项中找到【管理】选项并点击打开。3,接下里会进入到计算机控制台界面,在这里要根据自己的电脑选择64位或者32位,选择...
-
2026-01-14 12:55 liuian
- ctrl加谁是截图(ctrl和什么键可以截图)
-
第一种:Ctrl+PrScrn使用这个组合键截屏,获得的是整个屏幕的图片第二种:Alt+PrScrn这个组合键截屏,获得的结果是当前窗口的图片第三种:打开qq,使用快捷键Ctrl+...
- 技嘉主板bios设置启动顺序(技嘉主板bios设置启动顺序怎么设置)
-
启动顺序设置方法如下:1、重启电脑连续按[DEL]键进入BIOS设置,按DEL进入BIOS设置。2、按键盘方向键右键切换到BOOT选项,将windows10功能设置为"其它操作系统"...
-
- 目前台式电脑主机怎么选(台式主机选择)
-
每个人对电脑的性需要不同,因此根据自己家的家庭需要,选择合适的电脑即可。以下简单说明:1,双核处理器+2G内存+集成显卡+机械硬盘。性能满足上网、看电影、聊天、办公、玩象棋之类的小游戏。价格在2000以内可以买到;2,四核处理器+4G内存+...
-
2026-01-14 12:05 liuian
- 台式电脑如何用u盘重装系统(台式电脑如何用u盘重装系统应用)
-
1、重启电脑并进入BIOS;2、在BIOS中设置启动顺序,优先从U盘启动;3、从U盘启动,进入安装界面;4、选择安装语言、时区和键盘设置;5、选择安装方式,一般选择“清除整个硬盘并安装”;6、配置分区...
-
- stop0x0000007b蓝屏(stop0X0000007b蓝屏,修改注册表)
-
步骤/方式1将电脑送到当地的维修店步骤/方式2然后将师傅维修一下蓝屏的问题当电脑启动蓝屏出现错误代码0x0000007b时,首先我们将电脑重启,在开机时不停按启动热键进入到bios设置页面,进入页面后找到“IntegratedPeriphe...
-
2026-01-14 11:21 liuian
- 怎样设置默认打印机(打印机设置彩色打印在哪里设置)
-
步骤如下:1.单击Windows“开始”菜单,指向“设置”,单击“打印机”,打开“打印机”窗口。2.右键单击打印机图标,系统弹出快速菜单,单击其中的“设为默认值”。如果“打印机”窗口没有当前使用的打印...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
