1040 words
5 minutes
eWAPT v2 Course Labs Roadmap

Overview#

This roadmap supports the eWAPT v2 course with hands-on labs on TryHackMe and PortSwigger, organized into 8 sections that follow the course flow: how the web works, web hacking fundamentals, Burp Suite, XSS, SQL injection, and the supporting pentesting tools.

The roadmap was put together by Netriders Academy, with the labs curated by Ahmed Sultan. Pair it with my eWPTv2 Study Notes for the theory behind each topic. Every link opens the lab directly.

Total labs70
TryHackMe32
PortSwigger Web Security Academy38
Sections8

Note: two rooms, Burp Suite: The Basics and SQL Injection Lab, appear in more than one section because they support more than one topic, so the total counts each appearance. TryHackMe also occasionally moves rooms between free and paid, so if you find a lab that is locked, let me know and I will update the list.

Section Map#

#SectionFocusLabs
01How the Web WorksDNS, HTTP, and the request/response cycle4
02Web Hacking FundamentalsBurp Suite, OWASP Top 10, and first exploitation5
03Introduction to Web HackingContent discovery, authentication bypass, and injection basics6
04Burp SuiteRepeater, Intruder, and extensions5
05XSS & Web SecurityReflected, stored, DOM-based, and context-based XSS28
06SQL InjectionFrom fundamentals to UNION and Blind SQLi16
07Extra LabSupplementary practice1
08Pentesting ToolsNmap, Metasploit, John the Ripper, Nessus, and Hydra5

Suggested Learning Path#

  1. Foundations: How the Web Works -> Web Hacking Fundamentals -> Introduction to Web Hacking
  2. Core tooling: Burp Suite
  3. Attack techniques: XSS & Web Security -> SQL Injection
  4. Supporting tools: Pentesting Tools, which can be studied alongside the earlier sections
  5. Bonus: Extra Lab

PortSwigger difficulty levels: Apprentice -> Practitioner -> Expert. If you are new to XSS or SQL injection, complete the Apprentice labs in each subsection before attempting the harder ones.


01. How the Web Works#

Focus: DNS, HTTP, and the request/response cycle
Labs: 4

Before attacking a web application, understand how it works: DNS resolution, HTTP in detail, and how a browser and server exchange data from end to end.

#LabPlatform
1DNS in DetailTryHackMe
2HTTP in DetailTryHackMe
3How Websites WorkTryHackMe
4Putting It All TogetherTryHackMe

02. Web Hacking Fundamentals#

Focus: Burp Suite, OWASP Top 10, and first exploitation
Labs: 5

Your first hands-on exposure to web attacks: getting comfortable with Burp Suite, working through the OWASP Top 10 and Juice Shop, exploiting file upload vulnerabilities, and a first CTF-style machine to tie it together.

#LabPlatform
1Burp Suite: The BasicsTryHackMe
2OWASP Top 10 - 2021TryHackMe
3OWASP Juice ShopTryHackMe
4Upload VulnerabilitiesTryHackMe
5Pickle RickTryHackMe

03. Introduction to Web Hacking#

Focus: Content discovery, authentication bypass, and injection basics
Labs: 6

Core web attack techniques: walking an application methodically, discovering hidden content, bypassing authentication, enumerating subdomains, and exploiting OS command injection and SQL injection.

#LabPlatform
1Walking An ApplicationTryHackMe
2Content DiscoveryTryHackMe
3Authentication BypassTryHackMe
4Subdomain EnumerationTryHackMe
5OS Command InjectionTryHackMe
6SQL Injection LabTryHackMe

04. Burp Suite#

Focus: Repeater, Intruder, and extensions
Labs: 5

A deeper pass on Burp Suite: Repeater for manual testing, Intruder for automated attacks, and the other modules and extensions that make it the core tool of every web pentester.

#LabPlatform
1Burp Suite: The BasicsTryHackMe
2Burp Suite: RepeaterTryHackMe
3Burp Suite: IntruderTryHackMe
4Burp Suite: Other ModulesTryHackMe
5Burp Suite: ExtensionsTryHackMe

05. XSS & Web Security#

Focus: Reflected, stored, DOM-based, and context-based XSS
Labs: 28

The largest section in the roadmap. Start with the TryHackMe rooms for XSS and CORS fundamentals, then work through the PortSwigger XSS track: DOM-based sinks, injection contexts, filter bypasses, exploitation techniques like cookie theft and CSRF via XSS, and CSP bypass.

TryHackMe#

#LabPlatform
1Advanced XSSTryHackMe
2XSSTryHackMe
3CORS & SOPTryHackMe

PortSwigger - Reflected & Stored XSS#

#LabLevel
4Reflected XSS into HTML context with nothing encodedApprentice
5Stored XSS into HTML context with nothing encodedApprentice

PortSwigger - DOM-Based XSS#

#LabLevel
6DOM XSS in document.write sink using source location.searchApprentice
7DOM XSS in innerHTML sink using source location.searchApprentice
8DOM XSS in jQuery anchor href attribute sink using location.search sourceApprentice
9DOM XSS in jQuery selector sink using a hashchange eventApprentice
10DOM XSS in document.write sink using source location.search inside a select elementPractitioner
11DOM XSS in AngularJS expression with angle brackets and double quotes HTML-encodedPractitioner
12Reflected DOM XSSPractitioner
13Stored DOM XSSPractitioner

PortSwigger - XSS Contexts#

#LabLevel
14XSS in an attribute with angle brackets HTML-encodedApprentice
15XSS in an href attribute with double quotes HTML-encodedApprentice
16XSS into a JavaScript string with angle brackets HTML-encodedApprentice
17XSS in a HTML context with most tags and attributes blockedPractitioner
18XSS in a HTML context with all standard tags blockedPractitioner
19XSS with some SVG markup allowedPractitioner
20Reflected XSS in canonical link tagExpert
21XSS into a JavaScript string with single quote and backslash escapedPractitioner
22XSS into a JavaScript string with angle brackets and double quotes HTML-encoded and single quotes escapedPractitioner
23XSS in an onclick event with angle brackets and double quotes HTML-encoded and single quotes and backslash escapedPractitioner
24XSS in a JavaScript template literal with angle brackets, single, double quotes, backslash and backticks Unicode-escapedPractitioner

PortSwigger - Exploiting XSS#

#LabLevel
25Exploiting XSS to steal cookiesPractitioner
26Exploiting XSS to capture passwordsPractitioner
27Exploiting XSS to perform CSRFPractitioner

PortSwigger - Content Security Policy#

#LabLevel
28Reflected XSS protected by CSP, with CSP bypassExpert

06. SQL Injection#

Focus: From fundamentals to UNION and Blind SQLi
Labs: 16

SQL injection from the ground up on TryHackMe, then applied on PortSwigger through UNION attacks and the early stages of Blind SQL injection.

TryHackMe#

#LabPlatform
1SQL FundamentalsTryHackMe
2Advanced SQL InjectionTryHackMe
3SQL Injection LabTryHackMe

PortSwigger - Basic#

#LabLevel
4SQL injection vulnerability in WHERE clause allowing retrieval of hidden dataApprentice
5SQL injection vulnerability allowing login bypassApprentice

PortSwigger - Examining the Database#

#LabLevel
6Querying the database type and version on OraclePractitioner
7Querying the database type and version on MySQL and MicrosoftPractitioner
8Listing the database contents on non-Oracle databasesPractitioner
9Listing the database contents on OraclePractitioner

PortSwigger - UNION Attacks#

#LabLevel
10UNION attack: determining the number of columnsPractitioner
11UNION attack: finding a column containing textPractitioner
12UNION attack: retrieving data from other tablesPractitioner
13UNION attack: retrieving multiple values in a single columnPractitioner

PortSwigger - Blind SQL Injection#

#LabLevel
14Blind SQLi with conditional responsesPractitioner
15Blind SQLi with conditional errorsPractitioner
16Blind SQLi with time delaysPractitioner

07. Extra Lab#

Focus: Supplementary practice
Labs: 1

An additional room that complements the core roadmap.

#LabPlatform
1Common AttacksTryHackMe

08. Pentesting Tools#

Focus: Nmap, Metasploit, John the Ripper, Nessus, and Hydra
Labs: 5

The essential tools that support every web assessment: port and service scanning with Nmap, exploitation with Metasploit, password cracking with John the Ripper, vulnerability scanning with Nessus, and online password attacks with Hydra.

#LabPlatform
1Further NmapTryHackMe
2Metasploit: IntroductionTryHackMe
3John The Ripper: The BasicsTryHackMe
4NessusTryHackMe
5HydraTryHackMe

Tips for Getting the Most Out of These Labs#

  • Take notes on every lab: the payload, the request, and the reasoning behind it, so you can come back to them later.
  • Avoid walkthroughs until you have genuinely tried on your own. PortSwigger’s hints and solutions are there for when you are stuck, not as a first step.
  • Repeat labs a few days later without looking at the solution. This is what makes the knowledge stick.
  • Learn XSS by context: for each PortSwigger XSS lab, identify where your input lands (HTML, attribute, JavaScript string, DOM sink) before choosing a payload. This habit is what the exam tests.

These labs are for learning and practice in authorized environments only. Never test any technique on systems you do not own or have explicit permission to test.

eWAPT v2 Course Labs Roadmap
https://bad-glitch.github.io/posts/labs/ewptv2---labs/ewptv2/
Author
Amr Abdel Hamide
Published at
2026-09-19