Burp Intruder

Both Burp and ZAP provide additional features other than the default web proxy, which are essential for web application penetration testing. Two of the most important extra features are web fuzzers and web scanners. The built-in web fuzzers are powerful tools that act as web fuzzing, enumeration, and brute-forcing tools. This may also act as an alternative for many of the CLI-based fuzzers we use, like ffufdirbustergobusterwfuzz, among others.

Burp's web fuzzer overview

Target

Positions

Note: Be sure to leave the extra two lines at the end of the request, otherwise we may get an error response from the server.

Payloads

Payload Position & Payload Type

The first thing we must configure is the Payload Position and Payload Type.

Next, we need to select the Payload Type, which is the type of payloads/wordlists we will be using.

Payload Configuration

Next, we must specify the Payload Configuration, which is different for each Payload Type we select in Payload Type.

Tip: In case you wanted to use a very large wordlist, it's best to use Runtime file as the Payload Type instead of Simple List, so that Burp Intruder won't have to load the entire wordlist in advance, which may throttle memory usage.

Payload Processing

Another option we can apply is Payload Processing, which allows us to determine fuzzing rules over the loaded wordlist.

Payload Encoding

The fourth and final option we can apply is Payload Encoding, enabling us to enable or disable Payload URL-encoding.

Payload Encoding settings with URL-encode option for characters: ./^=<>&+?*:;'{}|^|450

We'll leave it enabled.

Settings

Finally, we can customize our attack options from the Settings tab. There are many options we can customize (or leave at default) for our attack.

Note: We may also use the Resource Pool tab on the right side vertical bar to specify how much network resources Intruder will use, which may be useful for very large attacks.

Attack

Now that everything is properly set up, we can click on the Start Attack button and wait for our attack to finish.

Burp Intruder summary

Exercise

Use Burp Intruder to fuzz for '.html' files under the /admin directory, to find a file containing the flag.

To use Burp Intruder for fuzzing '.html' files under the /admin directory, first capture a request to the /admin directory using Burp Proxy

GET /admin HTTP/1.1
Host: 83.136.255.203:52620
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Positions

Send the request to Burp Intruder and configure the payload positions by placing the payload marker (e.g., $ ) at the end of the path, such as /admin/$$.html.

GET /admin/$.html HTTP/1.1
Host: 83.136.255.203:52620
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Payload configuration

Use a wordlist like common.txt from Seclists and load it in the "Payload Configuration" section.

Payload processing

Used the "Skip if matches [^\..*$]"

Settings: Grep - Match

Enable and add 200 OK as 'Simple string' match type and disable 'Exclude HTTP headers'

Pasted image 20251006143805.png|700

Pasted image 20251006143901.png|500

Pasted image 20251006144021.png|500

flag: HTB