软件测试学习笔记丨tcpdump 与 wireshark

devtools/2024/10/18 12:19:11/

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32333

一、抓包分析TCP协议

1.1 简介

  • TCP协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。

1.2 环境准备

  • 对接口测试工具进行分类:
  1. 网络嗅探工具:Tcpdump、wireshark
  2. 代理工具:Fiddler、Charles、Anyproxy、burp suite、Mitmproxy
  3. 分析工具:Curl、Postman、Chrome Devtool

二、Tcpdump

  • Tcpdump是一款将网络中传送的数据包的“头”完全截取下来,提供分析的工具。
    • 它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句,去掉无用的信息。
    • 让Tcpdump时刻监听443端口,如果有异样就输入到log文件中。
      • 利用这条命令,会把得到的报告放到目录 /tmp/tcp.log 中。
sudo tcpdump port 443 -v -w /tmp/tcp.log
常用参数含义
port 443监听443端口
-x十六进制展示
-v输出更加详细的信息
-w把数据写到文件中

三、Wireshark

  • Wireshark也是一款网络嗅探工具,它除了拥有Tcpdump功能,还有更多扩展功能,比如分析工具,但是在接口测试中,抓包过程往往都是在服务器进行,服务器一般不提供UI界面,所以Wireshark无法在服务器工作,只能利用Tcpdump抓包生成log,然后将log导入Wireshark使用,在有UI界面的客户端上进行分析。

四、实战

1、抓取一个HTTP的GET请求:
(1)在百度搜mp3:http://www.baidu.com/s?wd=mp3
(2)用Tcpdump截获这个get请求,并生成log
(3)用Wireshark打开Tcpdump生成的log

  • 使用 Wireshark 查看 log,如图所示:

2、三次握手与四次挥手

  • log 的前几段信息是三次握手。因为信道是不可靠的,在发送数据前,就必须确保信道稳定,而三次握手就像是下面这些操作:

(1)第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SENT 状态,等待服务器确认。
(2)第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(seq=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态。
(3)第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED(TCP 连接成功)状态,完成三次握手,如图所示是三次握手的过程。

结束交流时,也需要进行四次挥手:

(1)第一次挥手:客户端向服务器端发送一个 FIN,请求关闭数据传输。
(2)第二次挥手:服务器接收到客户端的 FIN,向客户端发送一个 ACK,其中 ack 的值等于 FIN+SEQ。
(3)第三次挥手:服务器向客户端发送一个 FIN,告诉客户端应用程序关闭。
(4)第四次挥手:客户端收到服务器端的 FIN,回复一个 ACK 给服务器端。其中 ack 的值等于 FIN+SEQ。

注意: 一个请求可能分为多个包,一个数据也是这样,于是在 Wireshark 会看到很多包。

在这里插入图片描述

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)


http://www.ppmy.cn/devtools/125202.html

相关文章

七、结构型(桥接模式)

桥接模式 概念 桥接模式是一种结构型设计模式,旨在将抽象部分与其实现部分分离,使它们可以独立变化。它通过使用组合关系而非继承来实现接口和实现的解耦,从而提高系统的灵活性和可扩展性。 应用场景 多个维度的变化:当一个系统…

SpringBoot框架在购物推荐网站设计中的创新应用

3系统分析 3.1可行性分析 通过对本东大每日推购物推荐网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本东大每日推购物推荐网站采用JAVA作为开发语言&…

网络安全之XXE攻击

0x01 什么是 XXE 个人认为,XXE 可以归结为一句话:构造恶意 DTD 介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞。 既然能插入 XML 代码,那我们肯定不能善罢…

HTML 之 <div> 和 <span>

div 和 span 是 HTML 中两种非常常见的元素,但它们在页面布局和结构中的行为有所不同。它们分别是块级元素和行内元素,每种类型有各自的特点和用途。 1. div标签 块级元素 (Block-level element)默认样式:display: block特点: 它…

rpa批量发送邮件如何通过编辑器编发邮件?

rpa批量发送邮件的技巧?怎么使用rpa邮箱群发助手? 手动发送邮件变得越来越繁琐且效率低下。为了解决这一问题,越来越多的企业开始采用RPA技术来批量发送邮件。AokSend将详细探讨如何通过编辑器来实现rpa批量发送邮件的功能,从而提…

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现。 利用大语言模型生成PPT文件的SpringBoot Web应用,主要功能是自动化创建演示文稿,适用于快速制作演示材料,特色在于其高效的模板处理和文本替换技术。 点击视频观看…

hbuilderx+uniapp+Android健身房管理系统 微信小程序z488g

目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 用户功能…

javase笔记5----泛型

泛型 简介 泛型是一种特殊的数据类型。 它是Java 的一个高级特性。定义一个语法结构时,不用指明具体类型,而是先定义一个类型变量,在真正使用的时候再确定该变量的具体类型。即类型参数化。 语法 泛型,定义在一对尖括号中&#x…