Burp Scanner

An essential feature of web proxy tools is their web scanners. Burp Suite comes with Burp Scanner, a powerful scanner for various types of web vulnerabilities, using a Crawler for building the website structure, and Scanner for passive and active scanning.

Burp Scanner is a Pro-Only feature, and it is not available in the free Community version of Burp Suite. However, given the wide scope that Burp Scanner covers and the advanced features it includes, it makes it an enterprise-level tool, and as such, it is expected to be a paid feature.

Target Scope

To start a scan in Burp Suite, we have the following options:

  1. Start scan on a specific request from Proxy History
  2. Start a new scan on a set of targets
  3. Start a scan on items in scope

To start a scan on a specific request from Proxy History, we can right-click on it once we locate it in the history, and then select Scan to be able to configure the scan before we run it, or select Passive/Active Scan to quickly start a scan with the default configurations:

Proxy HTTP history showing requests. Selected GET request to http://142.93.35.92:30269/ with status 200, length 11297, HTML. Context menu options include 'Scan'

We may also click on the New Scan button on the Dashboard tab, which would open the New Scan configuration window to configure a scan on a set of custom targets.

If we go to (Target>Site map), it will show a listing of all directories and files Burp has detected in various requests that went through its proxy:

Target site map showing directory structure for http://46.101.23.188:30760. Selected GET request to '/' with status 200, length 11315, HTML, title 'HTB Academy'.

To add an item to our scope, we can right-click on it and select Add to scope:

Context menu for http://46.101.23.188:30760l with option to 'Add to scope'.

Note: When you add the first item to your scope, Burp will give you the option to restrict its features to in-scope items only, and ignore any out-of-scope items.

We may also need to exclude a few items from scope if scanning them may be dangerous or may end our session 'like a logout function'.

Target Scope settings with 'Include in scope' for http://142.93.35.92:30269/ and 'Exclude from scope' for /xmlrpc.php. 'Use advanced scope control' is unchecked.

Crawler

Once we have our scope ready, we can go to the Dashboard tab and click on New Scan to configure our scan, which would be automatically populated with our in-scope items:

Scan details with 'Crawl' selected. URL to scan: http://142.93.35.92:30269/. Protocol settings: Scan using HTTP & HTTPS.

We see that Burp gives us two scanning options: Crawl and Audit and Crawl.

Note: A Crawl scan only follows and maps links found in the page we specified, and any pages found on it. It does not perform a fuzzing scan to identify pages that are never referenced, like what dirbuster or ffuf would do. This can be done with Burp Intruder or Content Discovery, and then added to scope, if needed.

Let us select Crawl as a start and go to the Scan configuration tab to configure our scan. From here, we may choose to click on New to build a custom configuration, which would allow us to set the configurations like the crawling speed or limit, whether Burp will attempt to log in to any login forms, and a few other configurations. For the sake of simplicity, we will click on the Select from library button, which gives us a few preset configurations we can pick from (or custom configurations we previously defined):

Table of crawl configurations with names like 'Crawl limit - 10 minutes' and 'Crawl strategy - fastest'. All marked as built-in.

We will select the Crawl strategy - fastest option and continue to the Application login tab. In this tab, we can add a set of credentials for Burp to attempt in any Login forms/fields it can find. We may also record a set of steps by performing a manual login in the pre-configured browser, such that Burp knows what steps to follow to gain a login session. This can be essential if we were running our scan using an authenticated user, which would allow us to cover parts of the web application that Burp may otherwise not have access to. As we do not have any credentials, we'll leave it empty.

With that, we can click on the Ok button to start our Crawl scan. Once our scan starts, we can see its progress in the Dashboard tab under Tasks:

Dashboard showing a task for crawling 46.101.23.188:30760 with 'fastest' strategy. Progress: 76 requests, 2 errors, 10 locations crawled, 4s remaining.

We may also click on the View details button on the tasks to see more details about the running scan or click on the gear icon to customize our scan configurations further. Finally, once our scan is complete, we'll see Crawl Finished in the task info, and then we can go back to (Target>Site map) to view the updated site map:

Site map for http://46.101.23.188:30760 showing directories like 'devtools' and 'index.php'. Contents list GET requests with status 200, HTML, and titles like 'HTB Academy'.

Passive Scanner

Now that the site map is fully built, we may select to scan this target for potential vulnerabilities. When we choose the Crawl and Audit option in the New Scan dialog, Burp will perform two types of scans: A Passive Vulnerability Scan and an Active Vulnerability Scan.

Passive vs. Active Vulnerability Scan
Pasive Scan Demo

Active Scanner

We finally reach the most powerful part of Burp Scanner, which is its Active Vulnerability Scanner. An active scan runs a more comprehensive scan than a Passive Scan, as follows:

  1. It starts by running a Crawl and a web fuzzer (like dirbuster/ffuf) to identify all possible pages
  2. It runs a Passive Scan on all identified pages
  3. It checks each of the identified vulnerabilities from the Passive Scan and sends requests to verify them
  4. It performs a JavaScript analysis to identify further potential vulnerabilities
  5. It fuzzes various identified insertion points and parameters to look for common vulnerabilities like XSS, Command Injection, SQL Injection, and other common web vulnerabilities

The Burp Active scanner is considered one of the best tools in that field and is frequently updated to scan for newly identified web vulnerabilities by the Burp research team.

Active Scanner Demo

Once we select our configurations, we can click on the Ok button to start the scan, and the active scan task should be added in the Tasks pane in the Dashboard tab:

Dashboard showing a running task for crawl and audit of 142.93.35.92:32729. Audit checks for critical issues only. Progress: 3749 requests, 10 errors, 28 locations crawled, 1h 16m remaining.

Logger showing captured GET requests to 142.93.35.92. Paths include '/index.php/search/18508'. Status: 404. Capture filter: memory limit 100MB, requests and responses up to 1MB.

Once the scan is done, we can look at the Issue activity pane in the Dashboard tab to view and filter all of the issues identified so far. From the filter above the results, let's select High and Certain and see our filtered results:

Issue activity showing OS command injection on host http://142.93.35.92:32729l. Insertion point: ip parameter. Severity: High. Confidence: Firm.

We see that Burp identified an OS command injection vulnerability, which is ranked with a High severity and Firm confidence. As Burp is firmly confident that this severe vulnerability exists, we can read about it by clicking on it and reading the advisory shown, and view the sent request and received response, to be able to know whether the vulnerability can be exploited or how it poses a threat to the web server:

OS command injection issue with high severity and firm confidence on host http://142.93.35.92:32729. Details mention vulnerability to command injection using pipe character.

Reporting

Burp Scanner Report summary table showing issue counts by severity and confidence. High: 1 firm. Medium: 0. Low: 1 certain. Information: 2 certain, 3 firm. Total issues: 5.