Burp Suite Room WriteUp
This is my write ups for Burp Suite Room on Try Hack Me.
I will not go deep into why the answer is "x" or "y", that part is your job to understand what the room is trying to teach you.
Task 1 - Intro
- Read the overview and continue on into installation! -
No answer needed
Task 2 - Installation
No answer needed in this task
Task 3 - Gettin' [CA] Certified
No answer needed in this task
Task 4 - Overview of Features
Which tool in Burp Suite can we use to perform a 'diff' on responses and other pieces of data? -
Comparer
What tool could we use to analyze randomness in different pieces of data such as password reset tokens? -
Sequencer
Which tool can we use to set the scope of our project? -
Target
While only available in the premium versions of Burp Suite, which tool can we use to automatically identify different vulnerabilities in the application we are examining? -
Scanner
Encoding or decoding data can be particularly useful when examining URL parameters or protections on a form, which tool allows us to do just that? -
Decoder
Which tool allows us to redirect our web traffic into Burp for further examination? -
Proxy
Simple in concept but powerful in execution, which tool allows us to reissue requests? -
Repeater
With four modes, which tool in Burp can we use for a variety of purposes such as field fuzzing? -
Intruder
Last but certainly not least, which tool allows us to modify Burp Suite via the addition of extensions? -
Extender
Task 5 - Engage Dark Mode
No answer needed in this task
Task 6 - Proxy
To complete this task you need to connect to the TryHackMe network through OpenVPN -
No answer needed
By default, the Burp Suite proxy listens on only one interface. What is it? Use the format of IP:PORT -
127.0.0.1:8080
In Burp Suite, navigate to the Intercept sub-tab of the Proxy section. Enable Intercept -
No answer needed
Return to your web browser and navigate to the web application hosted on the VM we deployed just a bit ago. Note that the page appears to be continuously loading. Change back to Burp Suite, we now have a request that's waiting in our intercept tab. Take a look at the actions, which shortcut allows us to forward the request to Repeater? -
CTRL-R
How about if we wanted to forward our request to Intruder? -
CTRL-I
Burp Suite saves the history of requests sent through the proxy along with their varying details. This can be especially useful when we need to have proof of our actions throughout a penetration test or we want to modify and resend a request we sent a while back. What is the name of the first section wherein general web requests (GET/POST) are saved? -
HTTP history
Defined in RFC 6455 as a low-latency communication protocol that doesn't require HTTP encapsulation, what is the name of the second section of our saved history in Burp Suite? These are commonly used in collaborate application which require real-time updates (Google Docs is an excellent example here). -
WebSockets history
Before we move onto exploring our target definition, let's take a look at some of the advanced customization we can utilize in the Burp proxy. Move over to the Options section of the Proxy tab and scroll down to Intercept Client Requests. Here we can apply further fine-grained rules to define which requests we would like to intercept. Perhaps the most useful out of the default rules is our only AND rule. What is it's match type? -
URL
How about it's 'Relationship'? In this situation, enabling this match rule can be incredibly useful following target definition as we can effectively leave intercept on permanently (unless we need to navigate without intercept) as it won't disturb sites which are outside of our scope - something which is particularly nice if we need to Google something in the same browser. -
Is in target scope
Task 7 - Target Definition
Before leaving the Proxy tab, switch Intercept to disabled. We'll still see the pages we navigate to in our history and the target tab, just having Intercept constantly stopping our requests for this next bit will get old fast. -
No answer needed
Navigate to the Target tab in Burp. In our last task, Proxy, we browsed to the website on our target machine (in this case OWASP Juice Shop). Find our target site in this list and right-click on it. Select 'Add to scope'. -
No answer needed
Clicking 'Add to scope' will trigger a pop-up. This will stop Burp from sending out-of-scope items to our site map. -
No answer needed
Select 'Yes' to close the popup. -
No answer needed
Browse around the rest of the application to build out our page structure in the target tab. Once you've visited most of the pages of the site return to Burp Suite and expand the various levels of the application directory. What do we call this representation of the collective web application? -
site map
What is the term for browsing the application as a normal user prior to examining it further? -
happy path
One last thing before moving on. Within the target tab, you may have noticed a sub-tab for issue definitions. Click into that now. -
No answer needed
The issue definitions found here are how Burp Suite defines issues within reporting. While getting started, these issue definitions can be particularly helpful for understanding and categorizing various findings we might have. Which poisoning issue arises when an application behind a cache process input that is not included in the cache key? -
Web cache poisoning
Task 8 - Puttin' it on Repeat[er]
To start, click 'Account' (this might be 'Login' depending on the version of Juice Shop) in the top right corner of Juice Shop in order to navigate to the login page. -
No answer needed
Try logging in with invalid credentials. What error is generated when login fails? -
Invalid email or password.
But wait, didn't we want to send that request to Repeater? Even though we didn't send it to Repeater initially via intercept, we can still find the request in our history. Switch over to the HTTP sub-tab of Proxy. Look through these requests until you find our failed login attempt. Right-click on this request and send it to Repeater and then send it to Intruder, too! -
No answer needed
Now that we've sent the request to Repeater, let's try adjusting the request such that we are sending a single quote (') as both the email and password. What error is generated from this request? -
SQLITE_ERROR
Now that we've leveraged Repeater to gain proof of concept that Juice Shop's login is vulnerable to SQLi, let's try something a little more mischievous and attempt to leave a devastating zero-star review. First, click on the drawer button in the top-left of the application. If this isn't present for you, just skip to the next question. -
No answer needed
Next, click on 'Customer Feedback' (depending on the version of Juice Shop this also might be along the top of the page next to 'Login' under 'Contact Us') -
No answer needed
With the Burp proxy on submit feedback. Once this is done, find the POST request in your HTTP History in Burp and send it to Repeater. -
No answer needed
What field do we have to modify in order to submit a zero-star review? -
rating
Submit a zero-star review and complete this challenge in Juice Shop! -
No answer needed
Task 9 - Help! There's an Intruder!
Which attack type allows us to select multiple payload sets (one per position) and iterate through them simultaneously? -
Pitchfork
How about the attack type which allows us to use one payload set in every single position we've selected simultaneously? -
Battering Ram
Which attack type allows us to select multiple payload sets (one per position) and iterate through all possible combinations? -
Cluster Bomb
Perhaps the most commonly used, which attack type allows us to cycle through our payload set, putting the next available payload in each position in turn? -
Sniper
Download the wordlist attached to this room, this is a shortened version of the fuzzdb SQLi platform detection list. -
No answer needed
Return to the Intruder in Burp. In our previous task, we passed our failed login attempt to both Repeater and Intruder for further examination. Open up the Positions sub-tab in the Intruder tab with this request now and verify that 'Sniper' is selected as our attack type. -
No answer needed
Burp attempts to automatically highlight possible fields of interest for Intruder, however, it doesn't have it quite right for what we'll be looking at in this instance. Hit 'Clear' on the right-hand side to clear all selected fields. -
No answer needed
Next, let's highlight the email field between the double quotes ("). This will be whatever you entered in the email field for our previous failed login attempt. -
No answer needed
Now click 'Add' to select our email field as a position for our payloads. -
No answer needed
Next, let's switch to the payloads sub-tab of Intruder. Once there, hit 'Load' and select the wordlist you previously downloaded in question five that is attached to this task. -
No answer needed
Almost there! Scroll down and uncheck 'URL-encode these characters'. We don't want to have the characters sent in our payloads to be encoded as they otherwise won't be recognized by SQL. -
No answer needed
Finally, click 'Start attack'. What is the first payload that returns a 200 status code, showing that we have successfully bypassed authentication? -
a' OR 1=1--
Task 10 - As it turns out the machines are better at math than us
Switch over to the HTTP history sub-tab of Proxy. -
No answer needed
We're going to dig for a response which issues a cookie. Parse through the various responses we've received from Juice Shop until you find one that includes a 'Set-Cookie' header. -
No answer needed
Once you've found a request response that issues a cookie, right-click on the request and select 'Send to Sequencer'. -
No answer needed
Change over Sequencer and select 'Start live capture' -
No answer needed
Let Sequencer run and collect ~10,000 requests. Once it hits roughly that amount hit 'Pause' and then 'Analyze now' -
No answer needed
Parse through the results. What is the effective estimated entropy measured in? -
bits
In order to find the usable bits of entropy we often have to make some adjustments to have a normalized dataset. What item is converted in this process? -
token
Read through the remaining results of the token analysis -
No answer needed
Task 11 - Decoder and Comparer
Let's first take a look at decoder by revisiting an old friend. Previously we discovered the scoreboard within the site JavaScript. Return to our target tab and find the API endpoint highlighted in the following request: -
No answer needed
Copy the first line of that request and paste it into Decoder. Next, select 'Decode as ...' URL -
No answer needed
What character does the %20 in the request we copied into Decoder decode as? -
Space
Similar to CyberChef, Decoder also has a 'Magic' mode where it will automatically attempt to decode the input it is provided. What is this mode called? -
Smart Decode
What can we load into Comparer to see differences in what various user roles can access? This is very useful to check for access control issues. -
site maps
Comparer can perform a diff against two different metrics, which one allows us to examine the data loaded in as-is rather than breaking it down into bytes? -
Words
Task 12 - Installing some Mods [Extender]
To start, let's go ahead and switch over to the Options sub-tab of the Extender tab. -
No answer needed
Scroll down until you reach the 'Python Environment' section. Note, Burp requires the standalone edition of Jython. -
No answer needed
Download the standalone version of Jython from here: Link - I suggest saving this or moving it to your Documents folder -
No answer needed
Return back to Burp and hit 'Select file' under the Python Environment subsection for Jython standalone. Navigate to where you just downloaded this file and select it. -
No answer needed
Burp is now set to go for installing extensions. Switch to the BApp Store sub-tab of Extender and look through the various extensions offered. -
No answer needed
Which extension allows us too bookmark various requests? -
Bookmarks
Task 13 - But wait, there's more!
Download the report attached to this task. What is the only critical issue? -
Cross-origin resource sharing: arbitrary origin trusted
How many 'Certain' low issues did Burp find? -
12
Task 14 - Extra Credit
No answer needed here - Keep on learning!