PortSwigger / turbo-intruder

Turbo Intruder is a Burp Suite extension for sending large numbers of HTTP requests and analyzing the results.
https://portswigger.net/blog/turbo-intruder-embracing-the-billion-request-attack
Apache License 2.0
1.42k stars 207 forks source link

req.time issue #123

Closed s0x6fup closed 1 year ago

s0x6fup commented 1 year ago

I have noticed that the "Time" column always remains 0. (notice the 504 time-out response) image

I have tried debugging and piping the req.time to req.label = str(req.time) and it is received as 0.

The script I used:

def queueRequests(target, wordlists):
    engine = RequestEngine(endpoint=target.endpoint,
                           concurrentConnections=5,
                           engine=Engine.BURP # Use Burp's HTTP/1 network stack, including upstream proxies etc. You can also use Engine.BURP2 for HTTP/2.
                           )

    for i in range(3, 8):
        engine.queue(target.req, randstr(i), learn=1)

    for word in open('C:\\Users\\REDACTED\\Documents\\wordlists\\wordlist.txt'):
        engine.queue(target.req, word.rstrip())

def handleResponse(req, interesting):
    if interesting:
        table.add(req)
        callbacks.addToSiteMap(req.getBurpRequest())
        # You can also trigger scans, report issues, send to spider, etc:
        # https://portswigger.net/burp/extender/api/burp/IBurpExtenderCallbacks.html

Help is very much appreciated!

s0x6fup commented 1 year ago

In addition, there WAS a huge time delay in the responses when I did not filter for "interesting" responses. I also tried reinstalling the extension as well.

s0x6fup commented 1 year ago

I have found the issue, its the line "engine=Engine.BURP". Why does it not measure time when sent over burp's HTTP//1 network stack?

albinowax commented 1 year ago

Turbo can't do accurate time measurement using Burp's network stack.

s0x6fup commented 1 year ago

I think it will be a nice addition regardless, mainly to find significant time delays (lets say 10 seconds delay if testing for time-based payloads). Regardless, I'm loving this fuzzer, awesome work! :)

s0x6fup commented 1 year ago

For anyone that is looking for a workaround, you can simply use Burp's "Logger" (Start response timer column) which pretty much achieves what I wanted. So this addition is not necessary.