Introduction:
Burpsuite is a web application testing framework used by security professionals or web developers to identify attack vectors and to find security related flaws in their web applications. In this basic course students will learn how to use Burpsuite, in order to test web applications manually.
Burp suite is an intercepting proxy that can intercept requests from client side & responses from the server side. The ability to intercept allows hackers to manipulate requests/responses to look for & exploit vulnerabilities. It is mainly used by experienced security engineers & pen testers as it presents a single interface with various integrated toolsets.
Burp Suite has multiple capabilities. The professional & Enterprise version of the tool have scanner feature that scans a target web application / API to discover vulnerabilities. This is possible only if we are able to intercept the requests first.
Burp Suite Professional also as an extender tab where in we can add a set of extensions that can look for additional security violations or work slightly in a different way to discover some default vulnerability checks applied by the scanner
Getting Burp Suite :
Burp Suite is a tool which is used for testing Web application security. Its various tools work seamlessly together to support the entire testing process, from initial mapping and analysis of an application’s attack surface, through to finding and exploiting security vulnerabilities. Burp or Burp Suite is a set of tools used for penetration testing of web applications. It is developed by the company named Portswigger, which is also the alias of its founder Dafydd Stuttard. BurpSuite aims to be an all in one set of tools and its capabilities can be enhanced by installing add-ons that are called BApps.
Burp Suite is available in following types
Burp Suite Community
Burp Suite Professional
Burp Suite Enterprise
The community version is available for everyone & free to use. It can be downloaded from the portswigger official website. The Professional & Enterprise versions are available as a commercial use. If you are someone that didn’t try this tool & if your organization hasn’t requested for a trial license before then you can use this chance to request for trial version valid for 30 days with full features(note: this option is available while publishing this content, may change in future). Assume we are going to request for trial license for valid reasons to make best use of it.
Installing Burp Suite:
Burp Suite can be run on any operating system (OS) if the OS supports the specific java version installed as it is a java application & available in a JAR format to launch & use the tool.
We are using Burp Suite Pro v2020.2.1 & it requires minimum Java version 8 to install / run the tool.
Configuring Burp Suite:
Before we can use Burp suite, we need to configure it with our client so we can intercept requests/responses. Follow the sections 1,2,3 below to configure
Section 1, Configure browser with Burp Suite
open Burp —> proxy —> Options—> Add Proxy Listener
By Default burp suite runs on 8080 port. so the default proxy listener is localhost:8080. We need to set this proxy listener in our browser to intercept requests/responses.
open Firefox —> Preferences —> Network settings —> set Manual proxy configuration to localhost:8080
Section 2, Install Burp root CA certificate
This is required to intercept encrypted traffic.
open Burp —> proxy —> Options—> click import/export CA certificate to export the certificate Network speed test google.
After the certificate is exported, now open Firefox —> Preferences —> certificates —> Import certificate
Section 3, set Upstream proxy server
In some corporate networks, there is a proxy configured to connect to internet. To access external sites hosted outside the corporate network or to connect to internet we are required to set the upstream proxy.
to set this, open Burp —> User Options —> Add Upstream Proxy Servers
Burp Suite Integrated toolsets:
Repeater : It is used to replay the base request with altered/manipulated request parameters & observe the response from server. This feature helps to confirm the existence of a vulnerability as we can replay & observe responses. It becomes a bit easier to check for access control violations with the use of repeater as we will need to alter specific id’s or resources of a user with another user
Intruder : It is used to target specific request parameters with a list of custom payloads & observe the responses for each of the payloads/manipulated requests.
Sequencer : It is used to check for the strength of the tokens such as session cookies , forgot password tokens or user invited tokens etc.,
Decoder : It is used to decode/encode data in to specific formats such as base64, url encode/decode, hex format etc.,
Comparer : It is used to compare two requests or responses to check for any variations.
Burp HotKeys:
we can use key board short cuts to traverse between various sections/tabs of the tools. It can configured from user options —> Misc —> Hot keys
on MacOs, some hot key examples are
command+shift+R —> Repeater tab
command+shift+T —> Target tab
command+shift+I —> Intruder tab
Spidering / Crawling :
Crawl is an interesting feature as the tool automatically crawls a target website to discover all traversable links, parameters, resources etc.,It is recommended to set the scope of the spider to ensure only target site is crawled & consider setting specific crawl parameters to ensure the scanner isn’t overloaded with unrealistic crawl settings
for example : Unique location discovered : should be a realistic/appropriate value
Passive scanning:
During this phase the scanner doesn’t actual send any malicious requests on its own to the server, it simply observes all intercepted requests / responses & reports if there are any missing security header settings , secure cookie settings , sensitive tokens in GET request , other passive checks etc.,
some of the passive checks are applied as soon as the requests/responses are intercepted. To do a passive scan to cover all passive rules, we need to add the target site to scope & right click the target site to choose, passively scan this host
Active Scanning:
During this phase the scanner sends malicious requests on its own to the server from the initial or baseline intercepted requests , observes the responses from the server for each of this malicious requests to identify & report vulnerabilities such as SQL Injection, XSS , etc.,
To do an active scan, we need to add the target site to scope & right click the target site to choose, Actively scan this host
Adding Extensions:
Burp suite has an menu option, Extender. Most of the extensions are either developed in python, java or Ruby. For this reason, we need to set the environment settings under Options section of Extender Tab. Generally to set the java environment settings, we need to point to the location of the java JRE bin installed path, like wise for python, we need to set the location of Jythonstandalone.jar file present in our machine.
After the environment settings are completed, we can add extensions in two different ways. The easiest way to add an extension is go to BApp Store under the Extender tab & choose a extension from the list that you may want to add & use as per your need. Just click install from the right pane to install the extension. To successfully install a extension, the relevant environment setting is a must. Some extensions are available for community version but some are available for only professional version of the tool.
![Burp Suite Tutorials Burp Suite Tutorials](https://www.programmersought.com/images/650/2d6e0b7d4f3fdafe2326d661c0ad5c4a.png)
Burp Suite BAppStore has a limited set of extensions, there are lot more extensions available from other resources, such as github, we recommend that you use only extensions that are required & to avoid overloads. Some extensions will fall part of the default scanner to look for vulnerabilities but some will need to be used in a manual way.
Disable Extensions :
There are couple of ways to disable extensions, to disable all extensions, we can tick the checkbox “Disable extensions” while launching burp.
To disable a specific extension, go to Extender tab —> Extensions —> uncheck a specific extension that you do not wish to use.
Project Options:
Configurations & settings apply to the current project hacking session
(Macros, session Handling rules, cookie jar etc.,)
when following redirections, understand the predefined types, JavaScript-Driven is not enabled by default.
Burp Suite Basics
Project options —> HTTP —> Redirections
some useful project options
Project Options—> Misc —> Scheduled Tasks, Burp Collaborator Server
Burp Suite Tutorial Windows 7
Project Options —> sessions —> Session Handling Rules / Cookie Jar / Macros
User Options:
Configurations & settings that apply to Burp suite
Kobe lol. (proxy listener,upstream proxy, hotkeys etc.,)
![Tutorials Tutorials](/uploads/1/3/8/4/138405370/995464719.png)
some useful user options:
User Options —> Display —-> User Interface / HTTP Message Display
User Options —> Misc —> Proxy Interception
Platform Authentication
Saving Options for Future Use
Engagement Tools — Search / Find Comments / Find Scripts / Find References / Analyse Target / Simulate Manual Testing
Search : Used to search for specific strings or to search & look for sensitive information disclosure such as API keys, credentials etc.,
Find Comments : When used shows all comments left over by developers in target site resources
Find References: When used shows the reference of the target site in various places of the intercepted requests / responses Videos for Broadband Internet Speed Test.
Analyze Target: when used displays, number of dynamic urls, static urls,parameters, unique parameter names
Simulate Manual Testing: Let’s you take a break while the tool automatically sends requests to the target site to avoid session timeouts.
Introduction
Proxies like the one included in Burp Suite are designed for traffic interception. This allows the owner of the proxy to view, modify and drop packets passing through the proxy. While this can certainly be used for criminal purposes, it can also be used by cyberdefenders to protect against malware and dangerous user behavior.
In this article, we’ll discuss how to use Burp Suite to intercept Web traffic, both encrypted and unencrypted. We’ll start with unencrypted traffic (HTTP) and then cover the modifications necessary for HTTPS.
Intercepting HTTP Traffic
The first step to intercepting web traffic with Burp Suite is installing it on your system. The Burp Suite Community Edition is available from PortSwigger. After installing and opening Burp Suite, you’ll see a screen similar to the one below. [CLICK IMAGES TO ENLARGE]
When using Burp Suite as a proxy, it’s a good idea to ensure that the proxy is active. As shown in the screen above, this information is found under Proxy in the first row of tabs and Options in the second row. Note that the Burp proxy runs on 127.0.0.1:8080 by default.
If the proxy is running, the next step is setting up a Web browser to use the proxy. In this example, we’re using Chrome, so these settings can be found by opening Options and searching for Proxy as shown below.
Clicking on the “Open proxy settings” button in the above screen opens up the computer’s Internet Settings. As shown in the screen below, we’re using Windows for this example.
In the above screen, click on the LAN settings button, which opens the screen below. At the bottom of this screen is the computer’s proxy settings.
As shown above, we’ve set the proxy settings for the computer to Burp Proxy’s default address and port (127.0.0.1 and 8080). If you’ve changed this information for your Burp Suite instance, use your modified values here.
When complete, click OK and attempt to browse to a website. For this example, we’ve used an HTTPS site. As a result, we see the warning below.
Clicking Advanced and Proceed to site allows us to actually visit the website. At this point, take a look at Burp Proxy. Under the Proxy → Intercept tab, you can see the requests as they move through. As shown below, we see the GET request for the requested website.
Forwarding the requests in Burp eventually allows the webpage to load (as shown below).
However, as shown in the address bar, the site is not considered secure. This is because Burp breaks the certificate chain between the client and the server and uses its own certificate instead. Since Burp’s certificate is self-signed and untrusted by the browser, Chrome makes it obvious to the user that this isn’t a secure connection.
But what if we try to visit a site using HTTPS Strict Transport Security (HSTS), where the site requires that a secure connection is made between the server and the client? The image below shows an attempt to browse to Google while Burp is performing interception.
As shown in the screen above, Chrome gives you no option to continue on to the untrusted site. Since Burp is providing its own (untrusted) certificate to the client, the connection is completely untrusted and not allowed to continue. In order to visit Google, we need to get Chrome to trust Burp Proxy’s certificate.
Making the jump to HTTPS
Burp Proxy generates its own self-signed certificate for each instance. In order to get a copy of your Burp CA certificate, browse to 127.0.0.1:8080 (or wherever your Burp Proxy instance is running). Once there, you’ll see the screen below.
In the screen above, click on CA certificate in the top right corner. This will allow you to save a copy of your CA certificate to your computer.
Once you have the certificate, you need to mark it as trusted in your browser. In Chrome, this option is under Settings → Advanced Settings → Privacy and Security. At the bottom of the screen below is an option to manage certificates.
Clicking on “Manage certificates” will open up a window for managing certificates locally on your computer. On Windows, you will see the screen below.
To force Chrome to trust Burp’s certificate, move to the Trusted Root Certification Authorities tab and click Import. Click through the prompts and point it to your newly downloaded certificate. Once you have received a success message, restart both Burp and your browser.
Browsing to our original site on infosec.com, we no longer get an error message about an untrusted certificate. Examining the certificate (shown below), we see that Chrome is perfectly happy to accept a certificate signed by PortSwigger CA, which is the company that makes Burp Suite.
But what about interception for sites enforcing HTTPS via HSTS? Browsing to Google again throws no errors and, as shown below, Chrome accepts the PortSwigger CA certificate as valid.
At this point, we’re capable of intercepting any Web traffic using Burp Proxy.
Conclusion: Applications and limitations of HTTPS interception
As mentioned above, interception of HTTPS traffic is valuable for both benign and malicious purposes. A cyberdefender who can unwrap the encryption provided by TLS may be able to detect and remediate malware infections or threat actor intrusions on the corporate network. However, an attacker with the same capabilities poses a significant threat to the privacy and security of users on the network.
The fact that the user needs to trust the Burp proxy certificate can be an annoyance to the defender but is a significant bonus when dealing with malicious parties. An organization can force trust of the Burp CA (and many have similar policies for organizational root CA certificates for deep packet inspection), but this makes it necessary to appropriately protect the Burp proxy instance. Anyone with access to the private key corresponding to Burp’s self-signed certificate has the ability to read any data sent by browsers using the proxy.
Sources
- Download Burp Suite Community Edition, PortSwigger
- Intercepting HTTP and HSTS enabled HTTPS / SSL traffic on Chrome/Firefox using Burp Suite, Zeroday-Security