PortSwigger/turbo-intruder
GitHub: PortSwigger/turbo-intruder
Turbo Intruder 是一个 Burp Suite 扩展,用于发送海量 HTTP 请求并分析结果,专为处理极快速度、超长持续时间或高复杂度的攻击场景而设计。
Stars: 1729 | Forks: 232
# Turbo Intruder
Turbo Intruder 是一个 Burp Suite 扩展,用于发送大量 HTTP 请求并分析结果。它旨在通过处理需要极快速度、极长持续时间或极高复杂度的攻击,来补充 Burp Intruder 的功能。以下特性使其与众不同:
- **快速** - Turbo Intruder 使用了一个为速度而从头手工编写的 HTTP 栈。因此,在许多目标上,它甚至能显著超越时髦的异步 Go 脚本。
- **可扩展** - Turbo Intruder 可以实现平缓的内存使用,从而实现可靠的多日攻击。它也可以通过命令行在无界面环境中运行。
- **灵活** - 攻击使用 Python 进行配置。这使其能够处理复杂的需求,例如签名请求和多步骤攻击序列。此外,自定义 HTTP 栈意味着它可以处理那些会导致其他库崩溃的畸形请求。
- **便捷** - 无聊的结果可以通过改编自 Backslash Powered Scanner 的高级差异算法自动过滤掉。这意味着你只需点击两下即可发起攻击并获得有用的结果。
另一方面,它确实更难使用,而且网络栈也不像 Burp 核心那样可靠且经过实战检验。由于这是一个仅供高级用户使用的工具,我不会为任何在使用上遇到困难的人提供个人支持。另外我需要说明,它是为向单个主机发送大量请求而设计的。如果你想向大量主机发送单个请求,我推荐 ZGrab。
#### 文档
要开始使用 Turbo Intruder,请参阅 https://portswigger.net/blog/turbo-intruder-embracing-the-billion-request-attack 的视频和文档
#### 开发
构建方式:
Linux: `./gradlew build fatjar`
Windows: `gradlew.bat build fatjar`
从 `build/libs/turbo-intruder-all.jar` 获取输出
### 单数据包攻击参考实现
如果你有兴趣创建自己的 [单数据包攻击](https://portswigger.net/research/smashing-the-state-machine#single-packet-attack) 实现,可以在以下位置查看 Turbo Intruder 的参考实现:
[src/SpikeEngine.kt](https://github.com/PortSwigger/turbo-intruder/blob/89f76a82974f07b1529432bf880157aed5c98045/src/SpikeEngine.kt) 和
[src/SpikeConnection.kt](https://github.com/PortSwigger/turbo-intruder/blob/89f76a82974f07b1529432bf880157aed5c98045/src/SpikeConnection.kt)
该参考实现是基于 Burp Suite 的原生 HTTP/2 栈构建的。使用任何提供帧级接口的 HTTP/2 库应该都可以实现类似的实现。我曾见过 Golang 的 HTTP/2 栈被用于某些帧级攻击,因此这可能是一个不错的选择。
标签:Burp Suite 插件, CISA项目, HTTP 协议, HTTP 请求, JS文件枚举, PE 加载器, PoC, PortSwigger, Python, Web 安全, 云资产清单, 应用层攻击, 性能测试, 数据包构造, 无后门, 暴力破解, 网络安全, 自动化攻击, 逆向工具, 逆向工程, 隐私保护, 高并发