2022年之后,Burp多了几种种类的发包格式,值得研究一下。

Sending over a single connection is useful for timing-based attacks that rely on being able to compare responses with very small differences in timings, as it reduces the "jitter" that can occur when establishing TCP connections.

Sending over separate connections is primarily useful when testing for vulnerabilities that require a multi-step sequence to be performed.

Send Group in parallel

这个没什么好说的,看名知意,就是 并发 发送。

Single connection 和 Separate connections 的差别

这两者之间的差别需要看看,

先阐述一下网络上的差异,使用这两种发包的时候,都需要建立一个Group组,一般来说一个组内是有多个请求包的,

网络连接上的差别:

  • Single connection - 下文用单次连接代替,
  • Separate connections - 下文用分别连接代替;

单次连接是为了减少网络抖动而设计的,减少抖动(Jitter)

  • 当通过单一TCP连接发送请求时,所有请求共享同一个已建立的连接。

  • TCP连接建立的“抖动”:每次新建TCP连接时,需要经历“三次握手”(SYN, SYN-ACK, ACK),而网络延迟、路由变化、防火墙处理等因素会导致每次连接建立的时间不一致(即抖动)。

  • 如果攻击需要比较多个请求的响应时间(比如相差几毫秒),这种抖动会干扰时间测量的准确性。

  • 单次连接避免了重复建立连接的开销,因此响应时间的差异更可能反映服务器实际处理时间的差异,而非网络波动。

  • 分别连接,就是指每次的连接都需要建立完善的TCP三次握手。


想了解单次连接在安全上的用途,还需要先了解一个概念:时序攻击(Timing-Based Attacks)

  • 时序攻击是一种通过测量服务器响应时间的微小差异来推断敏感信息的攻击方式(例如破解密码、探测系统内部状态等)。

  • 例子:攻击者发送不同密码尝试登录,通过服务器响应时间的差异猜测正确密码(正确密码可能需要更长的验证时间),这种也叫侧信道

什么叫“侧信道”?

  • ”(Side):指攻击者不直接攻击系统的主逻辑(如密码算法、代码漏洞),而是从“侧面”观察系统的物理或行为特征。

  • 信道”(Channel):指攻击者利用的这些间接信息传递的路径(如时间、功耗、电磁波等)。

总结:

单次连接适合需要高精度时间测量的攻击场景(如边信道攻击),因为它能减少网络层面的干扰。


多连接的用途:多步骤漏洞测试

核心概念:

  • 多步骤漏洞:某些漏洞需要按特定顺序执行多个操作才能触发。

    • 例子

      1. 先通过一个请求创建用户账户;
      2. 用另一个请求提升权限;
      3. 最后用第三个请求执行恶意操作。

为什么用多连接?

  • 模拟真实场景

    • 多步骤漏洞通常需要多个独立操作,每个操作可能涉及不同的会话(Session)、Cookie或令牌。
    • 如果使用单一连接,可能会因为连接复用(如HTTP Keep-Alive)导致服务器误认为多个步骤是同一用户连续操作,从而掩盖漏洞。
  • 隔离步骤

    • 每个步骤通过独立连接执行,可以确保服务器为每个步骤分配新的资源(如线程、内存),更贴近真实攻击环境。
    • 某些漏洞可能依赖连接状态的独立性(如竞争条件漏洞)。

总结:

分别连接适合测试需要多个独立操作的漏洞(如逻辑漏洞、竞争条件),因为它能模拟真实用户的多步行为。


类比理解

  • 单连接:像用同一把尺子连续测量多个物体的长度,减少工具切换带来的误差。
  • 多连接:像用不同工具完成组装一台机器的多个步骤,每个工具独立使用,避免相互干扰。

实际应用场景

  1. 时序攻击示例 —— 单次连接:

    • 攻击者通过单连接发送100次密码猜测请求,通过响应时间差异推断正确密码。
    • 如果每次请求都新建连接,网络抖动可能导致误判。
  2. 多步骤漏洞示例 —— 分别连接:

    • 漏洞需要:登录 → 上传文件 → 触发文件解析漏洞。
    • 每个步骤需通过独立连接模拟不同用户操作,确保漏洞被正确触发。

Reference

https://portswigger.net/burp/releases/professional-community-2022-8

BurpSuite重放发包的一些区别的更多相关文章

  1. 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞

    手动漏洞挖掘 即扫描后,如何对发现的漏洞告警进行验证. #默认安装 流传linux操作系统比windows系统安全的说法,是因为windows系统默认安装后,会开放很多服务和无用的端口,而且未经过严格 ...

  2. bugku web题INSERT INTO注入

    0x01: 打开题目描述,已经将源码给了我们: <?php error_reporting(0); function getIp(){ $ip = ''; if(isset($_SERVER[' ...

  3. 【技巧总结】Penetration Test Engineer[4]-Web-Security(文件处理、会话管理、访问控制、SSRF、反序列化漏洞)

    Web安全基础2 3.8.文件处理 1)文件上传 一个正常的业务需求,问题在于控制上传合法文件. 防御文件上传 客户端javascript校验(通常校验扩展名) 检查MIME类型 检查内容是否合法 随 ...

  4. Linux Socket - UDP链接包

    LINUX UDP SOCKET 01 UDP号绑定会报错吗? 会的,提示Address is using,本地的没有区别 UDP不需要发起链接,不知道是不是连接成功 client的IP地址和端口号不 ...

  5. Pikachu漏洞练习平台实验——SQL注入(四)

    1.概述 1.1发生原因 SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄 ...

  6. NGINX 类漏洞 整理记录

    简单介绍NGINX: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行. 其特点是占有内存少,并发能力强,nginx的并 ...

  7. Java并发包源码学习系列:AQS共享式与独占式获取与释放资源的区别

    目录 Java并发包源码学习系列:AQS共享模式获取与释放资源 独占式获取资源 void acquire(int arg) boolean acquireQueued(Node, int) 独占式释放 ...

  8. Postman发包form-data、x-www-form-urlencoded、raw、binary的区别

    首先普及下http的Post四种Content-Type Postman中post编码方式form-data.x-www-form-urlencoded.raw.binary的区别 x-www-for ...

  9. java 并发包JUC下的CountDownLatch和CyclicBarrier的理解和区别

    推荐这篇帖子,讲得不错~ https://blog.csdn.net/liangyihuai/article/details/83106584

  10. OAuth和OpenID的区别(转)

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用.  OAuth协议为用户资源的授权提 ...

随机推荐

  1. Blazor 组件库 BootstrapBlazor 中EditorForm组件介绍

    组件介绍 EditorForm 组件是一个非常实用的组件,当进行数据编辑时,仅需要将 Model 属性赋值即可. 绑定模型默认自动生成全部属性,可以通过设置 AutoGenerateAllItem 更 ...

  2. Element Plus组件库el-table单元格内容超出时tooltip显示优化

    前情 公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vu ...

  3. ng-alain: 配置开发环境

    配置 ng-alain 开发环境 安装 1. Yarn 官方文档实际上是基于 Yarn 1 的,请从 Yarn 1 开始.在创建项目之后,可以升级到 Yarn 3. 注意:直接通过 npm 安装 ya ...

  4. Microsoft Build 2022 专家对话

    Microsoft Build 2022 专家对话 Build 2022 专家对话地址:https://mybuild.microsoft.com/en-US/sessions/81056450-6f ...

  5. 动态 import()

    动态 import() https://v8.dev/features/dynamic-import Dynamic import() 引入了一个新的类似函数的功能,相比静态的 import 提供了新 ...

  6. django生命周期流程图与django路由层

    目录 一.django请求生命周期流程图 二.django路由层 1.路由匹配 2.转换器 3.正则匹配 不同版本的区别 正则匹配斜杠导致的区别 4.正则匹配的无名有名分组 分组匹配 无名分组 有名分 ...

  7. com.sun.xml.internal.messaging.saaj.util 不存在

    maven 编译时报错:程序包com.sun.xml.internal.messaging.saaj.util不存在需要添加 <compilerArguments> <verbose ...

  8. Qt音视频开发49-通用截图截屏

    一.前言 采用了回调方式的视频通道,截图只需要对解析好的QImage对象直接保存即可,而对于句柄的形式,需要调用不同的处理策略,比如vlc需要用它自己提供的api接口函数libvlc_video_ta ...

  9. lottie-web动画库在HTML5页面中和在vue项目中的两种使用方式

    本文主要介绍lottie-web动画库在HTML5页面中和在vue项目中的两种使用方式. 1.在HTML5页面中的使用方式 具体使用步骤详见下面的代码: <!DOCTYPE html> & ...

  10. Windows应用开发-常用工具集推荐

     .NET/WPF开发 Visual Studio 最新版本是VS2022,官网下载:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 VsColorOutput 控制台 ...