Burp Suite 高并发重放测试的三种实战方法详解
字数 2216 2025-08-29 22:41:32

Burp Suite 高并发重放测试的三种实战方法详解

声明

本文所述内容仅用于技术研究与学习目的。请勿将文中技术用于任何未授权的渗透测试或违法活动,因不当使用所引发的一切后果由使用者自行承担。

前言

在渗透测试过程中,高并发方式向目标系统发送大量请求可以绕过一些行为限制。例如,在短信验证码接口中可能存在"一分钟内每个手机号只能请求一次"的限制,此时可以通过高并发手段突破此类防护机制。

方法一:Turbo Intruder 插件

原理

Turbo Intruder 是由 PortSwigger 官方开发的 Burp 插件,基于 Jython 实现,底层利用 Java 的 NIO(非阻塞 I/O)机制,可在极短时间内完成大量请求的发送。该插件支持复杂逻辑编排和响应处理,能够在数秒内发出上万请求。

使用方法

  1. 账户余额无法购买商品时
  2. 核销优惠券时拦截数据包,发至 Turbo Intruder 插件
  3. 调整脚本进行高并发重放
  4. 最终以低价成功购买

关键脚本参数

参数 必选 类型 说明
endpoint string 请求目标的主机和端口
concurrentConnections int 并发连接数
requestsPerConnection int 每个连接上发送的请求数量
engine string 请求发送引擎(如BURP、BURP2、THREADED)
pipeline bool 是否启用 HTTP pipelining(仅适用于 HTTP/1.1)

注意:使用 gate 标签(如gate='race1')可以将多个请求暂存,等openGate('race1')被调用时一并发出,实现高并发的效果。

方法二:Last-byte Synchronization technique

原理

Last-byte synchronization 是一种经典的并发利用技术,其核心思想是将每个 HTTP 请求分为两个部分发送:

  • 大部分内容作为"请求头部"
  • 最后一个字节作为"触发器"

攻击者先将所有请求的"请求头部"发送到服务器,使服务器处于阻塞等待状态(未接收完整请求)。待所有请求就绪后,再同时发送最后一个字节,使服务器在几乎同一时刻处理所有请求,从而可能绕过某些并发判断逻辑或竞争条件。

适用协议分析

协议 是否支持 说明
HTTP/1.1 支持 允许精确控制字节流
HTTP/2 不支持 由于帧封装和多路复用,无法实现字节级控制

使用方法(Burp Suite 2023.9+)

  1. 创建一个组,用于存放高并发的请求
  2. 在组内添加高并发的请求(如创建10个高并发请求)
  3. 选择高并发技术(对于HTTP1.1协议选择Last-byte synchronization)
  4. 点击"send group (parallel)"即可高并发访问

方法三:Single-packet Attack technique

原理

Single-packet attack 是指将多个 HTTP 请求拼接在一个 TCP 包中发送,从而实现"一包多请求"的效果。该方法依赖于:

  • HTTP/1.1 的 pipelining 特性(串行无等待发送多个请求)
  • HTTP/2 的多路复用机制

适用协议分析

协议 是否支持 说明
HTTP/1.1 支持 需开启 pipelining
HTTP/2 支持 多路复用天然支持并行请求发送

使用方法(Burp Suite 2023.9+)

  1. 创建一个组,用于存放高并发的请求
  2. 在组内添加高并发的请求(如创建20个高并发请求)
  3. 选择高并发技术(对于HTTP2协议选择Single-packet Attack Technique)
  4. 点击"send group (parallel)"即可高并发访问

技术对比总结

技术 并发方式 适用协议 特点
Turbo Intruder 使用线程/引擎高并发 HTTP/1.1 & HTTP/2 简单高效、可脚本化,需要安装插件
Last-byte Sync 拆分字节延迟发送 HTTP/1.1 Burp Suite 2023.9+支持,无需插件
Single-packet Attack 拼接请求包同时发出 HTTP/1.1 & HTTP/2 Burp Suite 2023.9+支持,无需插件

实战案例

以Burp Suite官方靶场《Lab: Limit overrun race conditions》为例:

  • 目标:购买价值\(1337的商品,使用20%折扣优惠券(用户账户只有\)50)
  • 常规思路无法完成购买
  • 通过高并发操作可成功完成低价购买

参考资源

Burp Suite 高并发重放测试的三种实战方法详解 声明 本文所述内容仅用于技术研究与学习目的。请勿将文中技术用于任何未授权的渗透测试或违法活动,因不当使用所引发的一切后果由使用者自行承担。 前言 在渗透测试过程中,高并发方式向目标系统发送大量请求可以绕过一些行为限制。例如,在短信验证码接口中可能存在"一分钟内每个手机号只能请求一次"的限制,此时可以通过高并发手段突破此类防护机制。 方法一:Turbo Intruder 插件 原理 Turbo Intruder 是由 PortSwigger 官方开发的 Burp 插件,基于 Jython 实现,底层利用 Java 的 NIO(非阻塞 I/O)机制,可在极短时间内完成大量请求的发送。该插件支持复杂逻辑编排和响应处理,能够在数秒内发出上万请求。 使用方法 账户余额无法购买商品时 核销优惠券时拦截数据包,发至 Turbo Intruder 插件 调整脚本进行高并发重放 最终以低价成功购买 关键脚本参数 | 参数 | 必选 | 类型 | 说明 | |------|------|------|------| | endpoint | 是 | string | 请求目标的主机和端口 | | concurrentConnections | 是 | int | 并发连接数 | | requestsPerConnection | 是 | int | 每个连接上发送的请求数量 | | engine | 否 | string | 请求发送引擎(如BURP、BURP2、THREADED) | | pipeline | 否 | bool | 是否启用 HTTP pipelining(仅适用于 HTTP/1.1) | 注意 :使用 gate 标签(如 gate='race1' )可以将多个请求暂存,等 openGate('race1') 被调用时一并发出,实现高并发的效果。 方法二:Last-byte Synchronization technique 原理 Last-byte synchronization 是一种经典的并发利用技术,其核心思想是将每个 HTTP 请求分为两个部分发送: 大部分内容作为"请求头部" 最后一个字节作为"触发器" 攻击者先将所有请求的"请求头部"发送到服务器,使服务器处于阻塞等待状态(未接收完整请求)。待所有请求就绪后,再同时发送最后一个字节,使服务器在几乎同一时刻处理所有请求,从而可能绕过某些并发判断逻辑或竞争条件。 适用协议分析 | 协议 | 是否支持 | 说明 | |------|----------|------| | HTTP/1.1 | 支持 | 允许精确控制字节流 | | HTTP/2 | 不支持 | 由于帧封装和多路复用,无法实现字节级控制 | 使用方法(Burp Suite 2023.9+) 创建一个组,用于存放高并发的请求 在组内添加高并发的请求(如创建10个高并发请求) 选择高并发技术(对于HTTP1.1协议选择Last-byte synchronization) 点击"send group (parallel)"即可高并发访问 方法三:Single-packet Attack technique 原理 Single-packet attack 是指将多个 HTTP 请求拼接在一个 TCP 包中发送,从而实现"一包多请求"的效果。该方法依赖于: HTTP/1.1 的 pipelining 特性(串行无等待发送多个请求) HTTP/2 的多路复用机制 适用协议分析 | 协议 | 是否支持 | 说明 | |------|----------|------| | HTTP/1.1 | 支持 | 需开启 pipelining | | HTTP/2 | 支持 | 多路复用天然支持并行请求发送 | 使用方法(Burp Suite 2023.9+) 创建一个组,用于存放高并发的请求 在组内添加高并发的请求(如创建20个高并发请求) 选择高并发技术(对于HTTP2协议选择Single-packet Attack Technique) 点击"send group (parallel)"即可高并发访问 技术对比总结 | 技术 | 并发方式 | 适用协议 | 特点 | |------|----------|----------|------| | Turbo Intruder | 使用线程/引擎高并发 | HTTP/1.1 & HTTP/2 | 简单高效、可脚本化,需要安装插件 | | Last-byte Sync | 拆分字节延迟发送 | HTTP/1.1 | Burp Suite 2023.9+支持,无需插件 | | Single-packet Attack | 拼接请求包同时发出 | HTTP/1.1 & HTTP/2 | Burp Suite 2023.9+支持,无需插件 | 实战案例 以Burp Suite官方靶场《Lab: Limit overrun race conditions》为例: 目标:购买价值$1337的商品,使用20%折扣优惠券(用户账户只有$50) 常规思路无法完成购买 通过高并发操作可成功完成低价购买 参考资源 官方靶场 Turbo Intruder 官方文档