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. 德承工控机DA-1000 RS-485串口设置

    由于一般情况下调试串口常使用RS-485转USB接口来进行调试,但是USB接口在长时间的调试下,接口容易松动,通讯也比较不稳定容易中断,所以改为DB9接口的RS-485来调试,稳固不松脱.抗干扰能力强 ...

  2. C#获取用户客户端系统版本设备名称浏览器

    C#获取用户客户端系统版本设备名称浏览器 先看效果 使用 Neget引用包UAParser 在这里插入代码片 项目的github :https://github.com/ua-parser/uap-c ...

  3. 通过NPOI读取 excel指定Sheet 到 DataTable

    public static DataTable ReadExcelToDataTable(string fileName, string sheetName = null, bool isFirstR ...

  4. 【Javaweb】【Maven】Use IDEA and Maven create a Java Web Application 

    Open This Url :https://mvnrepository.com/ Search Servlet Select the latest version Copy it! Paste An ...

  5. 【MyBatis】学习笔记04:配置文件模板

    [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) 目录 IDEA配置模板的地方 核心 ...

  6. Qt项目升级到Qt6经验总结

    1 直观总结 增加了很多轮子,同时原有模块拆分的也更细致,估计为了方便拓展个管理. 把一些过度封装的东西移除了(比如同样的功能有多个函数),保证了只有一个函数执行该功能. 把一些Qt5中兼容Qt4的方 ...

  7. Wasm在即时通讯IM场景下的Web端应用性能提升初探

    本文由得物技术WWQ分享,原题"基于IM场景下的Wasm初探:提升Web应用性能",下文进行了排版和内容优化. 1.什么是Wasm Wasm,全称 WebAssembly,官网描述 ...

  8. 【记录】使用R2 CDN替换本地项目图片以加速图片加载

    将图片存储到 Cloudflare 的存储桶中,并通过其提供的公共 URL 来替换代码中的本地路径,可以减小项目中打包的图片文件体积 实现方法的详细步骤: 1. 上传图片到 Cloudflare 的存 ...

  9. 在 .NET 中使用 Tesseract 识别图片文字

    1. 什么是 Tesseract Tesseract 是一个强大的字符识别 (OCR) 工具.它最初由 HP 发布,现在由 Google 和学术社区共同维护和开发. Tesseract 支持多种语言和 ...

  10. sshd 启动失败

    解决方法 yum remove openssh yum install openssh openssh-server openssh-clients systemctl start sshd syst ...