一篇文章告诉你,全网爆款抓包工具的优劣势

news2024/9/20 14:56:16

前言

作为软件测试工程师,抓包总是不可避免:遇到问题要做分析需要抓包;发现 bug 需要定位要抓包;检查数据传输的安全性需要抓包;接口测试遇到需求不全的也需要抓包... 就因为抓包在测试工作中无处不在,所以市面上才会出现一大批的抓包工具供大家选择。

有很多小伙伴都在讨论的一个问题就是“这个工具和 xxx 工具有什么区别呢?” 或者 "这个工具和 xxx 工具谁更好用呢?"

所以,为了解决大家的这个疑惑,让大家能够合理地选择更适合的工具,更好的辅助测试工作的执行,我们今天就来分析一下各种爆款的抓包工具的优劣势。

Fiddler

Fiddler 工具非常经典且强大,这点大家应该都所体会。它可以提供电脑端、移动端的抓包、包括 http 协议和 https 协议都可以捕获到报文并进行分析;可以设置断点调试、截取报文进行请求替换和数据篡改,也可以进行请求构造,还可以设置网络丢包和延迟进行 APP 弱网测试等。

所以,fiddler 的第一个优点,就是功能强大并齐全;

第二个优点就是 Fiddler 是开源免费的,所有的电脑只要安装就可以直接使用所有的功能!这无疑也是一个非常大的优势,为它也拉拢了大量的用户!

当然,它也有自己的缺点:只能在 windows 下安装使用。如果要在其他系统上抓包,比如 MacOS 系统,Linux 系统,那么 Fiddler 就无用武之地了。

Charles

Charles 工具别名“花瓶”,它是通过代理来实现的抓包,也就是我们在访问网页时配置代理指向 Charles 监听的端口,之后所有的请求 Charles 会帮我们转发并记录。

Charles 的使用非常简单,配置好代理后,Charles 就开始抓包了。我们可以直接通过它的 GUI 查看包的内容,其实功能和使用跟 Fiddler 非常的雷同,同样可以提供电脑及手机端的抓包分析、设置断点、弱网环境模拟等,那么它跟 fiddler 的区别在哪里呢?

优点:

  1. Charles 基于 Java 开发的,跨平台性好。所以不仅支持 Windows 系统,还支持 MacOS,以及 Linux 操作系统;所以基本非 windows 电脑都会选择 Charles 工具。
  2. 要抓取 https 协议的配置也很简单,只要安装下 charles 的证书就可以了

缺点

Charles 工具是不免费的。它需要购买 license,如果不购买使用的话就会每 30 分钟断一次,使用体验非常不好!

Wireshark

Wireshark 也可以在各个平台都可以安装使用,不过它的功能侧重点和 Charles&Fiddler 有所不同,它主要用来抓取网络中的所有协议的数据报文,对于分析网络协议以及网络问题方面非常专业!

Wireshark 工具的优点:

  1. 可以选择特定的网卡进行流量的捕获,那么就只会抓取关心的网卡经过的数据,针对性很强;
  2. 可以抓取所有协议的报文,并且抓取的报文可以完整的以 OSI 七层网络模型的格式显示,可以清晰的看到客户端和服务器之间每一个交互报文,以及每一个数据包的网络各层级的详细内容显示。所以,这个工具抓包非常适合学习和分析网络协议。
  3. 提供了非常强大的过滤规则。Wireshark 可以提供捕获前过滤,也可以捕获后过滤,并且过滤规则非常详细,可以实现精度和细粒度非常高的包过滤;
  4. 可以结合 TCPdump 使用,分析线上服务器(Linux 系统)下抓取的数据报文,定位线上问题。

Wireshark 工具的缺点:

  1. 如果要灵活的使用它需要具备一定的网络基础,对于初学者有一定的难度;
  2. 无法分析 https 数据包,由于 wireshark 是在链路层获取的数据包信息,所以获取到的 https 包是加密后的数据,因此无法分析包内容。当然,我们可以对 https 数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。

BurpSuite

Burpsuite 工具也是基于 Java 语言开发的,所以它也可以跨各平台使用,包括 Windows,MacOS 及 Linux 等系统平台。

Burpsuite 可以提供抓包功能,它的工作方式同样也是在浏览器和网站之间做了代理从而实现报文截取的;也能够修改数据内容并转发的功能;甚至还可以选择使用爬虫爬下网站相关的数据...

但是,它绝对不仅仅是一款抓包工具,它集成了很多实用的小工具可以完成更加强大的功能,比如 http 请求的转发、修改、扫描等。同时这些小工具之间还可以互相协作,在 BurpSuite 这个框架下进行订制的攻击和扫描方案。

所以这个工具很多功能测试的人员会使用它进行报文抓取和篡改数据,很多安全测试人员会借用它进行半自动的网络安全审计,开发人员也可以使用它的扫描工具进行网站压力测试与攻击测试,功能作用范围更加广泛。

不过它也有自己的缺点,就是不免费!每个用户一年的费用为 299$,使用成本相对来说有点高。

 

F12

F12 是众多抓包工具中最简单、最轻量级的,因为它是浏览器内置的开发者工具来提供捕获浏览器的数据报文的功能。它免安装,直接打开浏览器就可以直接使用,所有使用非常好上手,适合入门级别的新手学习。

它主要针对的是 HTTP 协议和 HTTPS 协议, 可以确认我们的网络数据包的一个状态, 通过分析请求和响应报文里面的内容, 分析出来请求数据和响应数据是否正确, 定位问题是前端问题还是后端问题。

而且 F12 作为浏览器的一部分,是数据收发的一端,抓取到的 HTTPs 报文是可以得到明文数据的;不过因为只能抓当前浏览器的收发报文,层次只能是在应用层 Http(s)协议,不能抓取其他的数据报文。

虽然 F12 抓包调试也能满足我们基本的测试工作需求,但是作用面和强大性和其他的抓包工具还是有一定差距的。

TCPdump

TCPdump 这是专门作用于 Linux 命令行的抓包工具,它可以提供非常多的参数来对网络数据包进行过滤和定义。

而它抓取到的报文可以直接打印在 Linux 的命令行界面,也可以进行保存成文件,并用 Wireshark 工具打开进行更加细致的分析。

总结

小编说了这么多,总的来说呢,测试可以用的抓包工具非常多,然而它们各有各的优势,也有对应的不足,所以根据自己的使用场景,选择最适合的抓包工具才是最重要的!要是在以后遇到不知道该用哪个抓包工具的时候可以看看小编的文章哟。

 

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

全套资料获取方式:点击下方小卡片自行领取即可

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TuyaOS 开发固件OTA配置指南

文章目录 一、固件升级配置升级信息设置配置中英文升级文案配置发布范围固件升级验证 二、固件升级发布 通过TuyaOS接入涂鸦云的产品全部默认支持固件OTA功能,TuyaOS设备实现固件OTA需要: 自定义产品创建TuyaOS嵌入式开发固件上传固件OTA配置与发布 等步…

PMP知识点汇总完善版,2023年8月考试就靠它了

第1章 整体管理 1.1 制定项目章程 是制定一份正式批准项目或阶段的文件,并记录能反应干系人需要和期望的初步要求的过程。由项目以外的人员批准,如发起人,批准标志项目的正式启动。 1.1.1 知识点汇总 1、由项目以外的人员批准,如…

Mac iterm Ctrl + V内容前后出现了0~ 1~

背景 笔者周六日加班的时候,被小外甥看到,小外甥就对电脑玩了起来,玩完就这样了 现象 iterm2中复制黏贴出现如下现象: 解决 经过了解是启用了括号粘贴,不得不感叹两岁小外甥这天赋真逆天啊,不辜负他爸…

深入浅出设计模式 - 抽象工厂模式

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

自动化测试框架[Cypress概述]

目录 前言: Cypress简介 Cypress原理 Cypress架构图 Cypress特性 各类自动化测试框架介绍 Selenium/WebDriver Karma Karma的工作流程 Nightwatch Protractor TestCafe Puppeteer 前言: Cypress是一个基于JavaScript的端到端自动化测试框架…

个人自我评价格式范文五篇

★个人自我评价1 工作已经进行两周多了,突然发现自己似乎又重蹈覆辙了,再一次一次的不经意中和某些人的就距离却是越来越来大,总是想偷一下懒,总是想着马马虎虎过去算了,没有那么精打细算过。结果不经意有些人人开始脱…

android的项目下的res文件夹下的部分文件夹介绍

1.看图 drawable文件夹下的图片是不压缩的图片 drawable-xhdpi文件夹下的图片是适合指定分辨率的图片 mipmap-xxhdpi文件夹下的图片是小型设备分辨率的图片

基于物联网、云计算建设的智慧校园云平台源码

电子班牌作为班级文化展示交流的窗口,可以让更多的人看到校园信息建设与班级风格相结合,及时传递校园信息。学生也可以通过电子班牌看到学校近期重要事件的发布,也可以参与回复,让学生及时掌握校园和班级动态。同时,还…

版本管理可视化工具GitKraKe安装

资源下载地址 https://download.csdn.net/download/u012796085/87953404 1 解压后安装GitKrakenSetup-7.5.5.exe 2 命令窗口进入GitKraken存放目录,分别执行以下语句 git clone https://gitee.com/pan13640612207/GitKraken.git cd GitKraken/ yarn install yarn…

STM32使用STM32CUBEMX配置FreeRTOS+SDIO4bit+FATFS注意事项

一、使用STM32CUBEMX配置FreeRTOSSDIO4bitFATFS注意事项: 以STM32F429为例: 1、SDIO配置 配置为4bit模式,此配置不是最终配置,后面会在代码进行修改。 2、Fatfs配置 Set Defines 选项中的配置可以默认,最重要注意Ad…

git配置和git合并

git配置: 首先下载安装git:https://git-scm.com/downloads/ 一路默认,安装完成后,打开文件夹C:\Users\Administrator\.ssh(Administrator是当前用户名),在空白处点鼠标右键选择“Git Bush Her…

资源分享开发系统

资源分享系统-开放 提示:开源是学习的来源,分享是进步的体现 近期,使用springboot结合layui写了一个技术管理系统,其实最主要是做一些资源的分享,可便捷生活和学习,包括免费听音乐的网站,免费…

和鲸助力中国大学生计算机设计大赛国赛作品评审标准落实研讨会召开,专家平台首发布

6月16日至19日,中国大学生计算机设计大赛国赛作品评审标准落实研讨会(第一期)在天津召开,本次会议由中国大学生计算机设计大赛组委会主办,南开大学承办,和鲸社区参与协办。 会议由中国人民大学杜小勇教授、…

GPIO模拟时序控制外设1——WS2812B

文章目录 前言WS2812B1.模块简介2.时序介绍3.硬件介绍4.传输速率,以及帧数要求 代码1.初始化2.模拟时序1.复位函数2.发送0、1码3.封装发送函数 总结 前言 上一篇文章中介绍了整个板子的最基本功能模块——使用GPIO的通用输入输出实现简单的按键输入以及推挽输出控制…

【若依分离版操作方法日志与其它业务数据(如入库操作)关联的实现】

若依框架业务表和操作日志表关联 需求:分析:思路:实现: 需求: 基于若依分离版框架业务数据与操作日志的数据做个关联 入库表 /*入库业务表 */ CREATE TABLE [BS_In]( [Id] int IDENTITY(1,1)…

【MySQL 主从复制与读写分离】

目录 一、MySQL主从复制1.1、主从复制架构和原理1.2、MySQL的扩展1.2.1、什么是读写分离1. 读写分离的基本原理2. MySQL 读写分离原理 1.2.2、为什么要读写分离1.2.3、什么时候要读写分离1.2.4、主从复制与读写分离1.2.5、mysql支持的复制类型 1.3、复制的共用1.4、复制架构1.5…

2023年下半年北京/上海/深圳NPDP产品经理认证招生

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

java学习记录之DBUtils

1 jdbc回顾 1.1 批处理  Statement 执行多条sql addBatch(sql) clearBatch() int[] executeBatch()  PreparedStatement 执行一条sql语句,多组参数 addBatch() 执行之前必须设置实际参数 psmt.setXxxx() clearBatch() executeBatch() 1.2 事务  事务&…

SpringBoot 整合redis + Aop防止重复提交 (简易)

1.redis的安装 redis下载 解压 安装 # wget http://download.redis.io/releases/redis-6.0.8.tar.gz # tar xzf redis-6.0.8.tar.gz # cd redis-6.0.8 # make 看一下就会有 进入redis-6.0.8下的src目录 [rootVM-16-8-centos redis]# cd redis-6.0.8 [rootVM-16-8-centos re…

【Java】Java 中的引用类型

本文仅供学习参考! Java是一种类型化语言,这本质上意味着声明的每个变量都有与之关联的特定类型。此类型确定它可以存储的值。例如,整数类型可以存储非小数。也称为数据类型,这可以大致分为两类:基元和引用。基元类型是…