让人忍不住大叫Amazing的BP插件——Turbo Intruder

Home WEB安全 让人忍不住大叫Amazing的BP插件——Turbo Intruder

一、Abtract

Turbo Intruder,一款极其快速的爆破工具,在速度上它是Intruder中的王者级。它这么快的原因就在于开发者以底层的角度致力于快速而开发。本文简略的舔一波如此好用的工具。

二、How fast is it?

它到底有多快呢?1W字典可以5秒打完的量级水平。

三、Why is it so fast?

那为什么它这么快呢?从底层的角度来讲,它如此之快的原因是它利用了HTTP1.1协议的两个新特性:keepalivepipeline机制

keepalive机制使得每次向服务器发送HTTP请求不需要重新建立TCP连接,同一次连接可以一直复用,节省了大量创建TCP连接的时间;pipeline管道网络传输使得HTTP请求可以进行异步请求,即短时间大量发送请求,不需要等待服务器回传的HTTP响应数据再发送请求。

1、Keepalive长连接

早期 HTTP/1.0 性能上的一个很大的问题,那就是每发起一个请求,都要新建一次 TCP 连接(三次握手),而且是串行请求,做了无谓的 TCP 连接建立和断开,增加了通信开销。

​ 为了解决上述 TCP 连接问题,HTTP/1.1 提出了长连接的通信方式,也叫持久连接。这种方式的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。

​ 持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。

长连接选项的开启由请求头字段:Connection: keep-alive 标记。

image

2、PIPELINE管道传输机制

HTTP/1.1 采用了长连接的方式,这使得管道(pipeline)网络传输成为了可能。即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

​ 举例来说,客户端需要请求两个资源。以前的做法是,在同一个TCP连接里面,先发送 A 请求,然后等待服务器做出回应,收到后再发出 B 请求。管道机制则是允许浏览器同时发出 A 请求和 B 请求。不过服务器还是需要按照顺序,先回应 A 请求,完成后再回应 B 请求,不然数据顺序就乱了哈。

image

四、Usage

1、Download

你可以选择在BurpSuite自带的软件市场Extender ==> BApp Store中下载它,或者在Github上下载最新的Release。

2、Get Started

其实Turbo Intruder是有一定的使用门槛的,它并没有提供像Intruder那样简单友善的界面使用,而是提供了一个脚本编写界面以脚本的形式去运行它。

不过,软件是自带了一些写好的脚本模块,简单的爆破已经足够我们使用了,在使用时有一些小问题要注意一下,这里只简单的以一个接口参数爆破的案例来介绍用法。

首先,选择一个需要进行测试的数据包,将其发送到Turbo Intruder。

然后,需要用%s来标记我们爆破的位置。默认使用defualt.py脚本即可,但是需要在handleResponse中修改一下显示结果的条件,我在测试时默认条件下没有显示结果。

最后点击下面的攻击按钮,享受爆破的极速体验吧~

这里要说一下,默认条件下没有开启PIPELINE的网络传输方案,你需要在脚本中将pipeline=False改为True。另外两个参数根据需要也可以进行调整。

关于Turbo Intruder的更多实战场景,例如:爆破验证码。可以在Reference中推荐的博客中查看!

Thanks for watching ~

Reference

timeshatter——Turbo Intruder 使用 – 拥抱十亿请求攻击

Turbo Intruder: Embracing the billion-request attack


Related post

发表回复


#footer{ margin: 0 auto; }