888 words
4 minutes
eJPT v2 Course Labs

Overview#

This roadmap supports the eJPT v2 course with hands-on labs on TryHackMe and PortSwigger, organized into 4 sections that follow the structure of the course: information gathering and scanning, auditing and monitoring, host and network attacks, and web application attacks.

This roadmap was prepared by Amr Abdel Hamide for Netriders Academy. Pair it with my eJPTv2 Study Notes for the theory behind each topic. Every link opens the lab directly.

Total labs125
TryHackMe91
PortSwigger Web Security Academy34
Sections4

Note: TryHackMe occasionally moves rooms between free and paid. If you find a lab that is locked, let me know and I will update the list.

Section Map#

#SectionFocusLabs
01Information Gathering & Vulnerability ScanningPassive/active recon, OSINT, and Nmap13
02Auditing and MonitoringVulnerability scanners, risk, and detection frameworks8
03System & Network Host-Based AttacksNetworking, privilege escalation, Metasploit, and boot2root machines55
04Web Application AttacksWeb fundamentals, SQL injection, and XSS49

Suggested Learning Path#

  1. Start with the basics: Information Gathering & Vulnerability Scanning
  2. Understand monitoring and auditing: Auditing and Monitoring
  3. Host and network track: System & Network Host-Based Attacks. Work through Networking & Basics first, then Privilege Escalation, Metasploit, and Basic Exploitation before moving on to the wider CTF collection.
  4. Web application track: Web Application Attacks. Complete Web Basics and TryHackMe SQL injection before starting PortSwigger.

The host/network track and the web track are independent, so you can study them in either order or alternate between them.

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


01. Information Gathering & Vulnerability Scanning#

Focus: Passive/active recon, OSINT, and Nmap
Labs: 13

The starting point of every assessment: gathering information about the target passively and actively, using OSINT tools like Shodan and Google Dorking, and mastering Nmap and RustScan for host and service discovery.

Reconnaissance#

#LabPlatform
1Passive ReconnaissanceTryHackMe
2Active ReconnaissanceTryHackMe
3Red Team ReconTryHackMe

Nmap & Port Scanning#

#LabPlatform
4Nmap: Live Host DiscoveryTryHackMe
5Nmap: Basic Port ScansTryHackMe
6Nmap: Advanced Port ScansTryHackMe
7Further NmapTryHackMe
8NmapTryHackMe
9RustScanTryHackMe

OSINT#

#LabPlatform
10Shodan.ioTryHackMe
11Google DorkingTryHackMe
12Web OSINTTryHackMe
13Searchlight OSINTTryHackMe

02. Auditing and Monitoring#

Focus: Vulnerability scanners, risk, and detection frameworks
Labs: 8

Understanding how systems are audited and monitored: security principles and risk management, vulnerability scanning with Nessus and OpenVAS, and detection frameworks like MITRE ATT&CK and Yara.

#LabPlatform
1Auditing and MonitoringTryHackMe
2Risk ManagementTryHackMe
3Vulnerability Scanner OverviewTryHackMe
4Security PrinciplesTryHackMe
5NessusTryHackMe
6MITRETryHackMe
7YaraTryHackMe
8OpenVASTryHackMe

03. System & Network Host-Based Attacks#

Focus: Networking, privilege escalation, Metasploit, and boot2root machines
Labs: 55

The core hands-on section: networking fundamentals and traffic analysis, privilege escalation on Windows and Linux, exploitation with Metasploit, and a long list of boot2root machines to apply everything end to end. Start with the basic machines, then move on to the wider CTF collection.

Networking & Basics#

#LabPlatform
1Networking ConceptsTryHackMe
2Networking EssentialsTryHackMe
3Networking Core ProtocolsTryHackMe
4Wireshark: The BasicsTryHackMe
5TcpdumpTryHackMe

Privilege Escalation & Hardening#

#LabPlatform
6Windows PrivEscTryHackMe
7Linux PrivEscTryHackMe
8Linux Privilege EscalationTryHackMe
9Common Linux PrivescTryHackMe
10Windows Local PersistenceTryHackMe
11Linux System HardeningTryHackMe

Metasploit & Exploitation#

#LabPlatform
12Metasploit: IntroductionTryHackMe
13Metasploit: ExploitationTryHackMe
14MeterpreterTryHackMe

Basic Exploitation#

#LabPlatform
15VulnversityTryHackMe
16Basic PentestingTryHackMe
17Steel MountainTryHackMe

CTF & Exploitation Labs#

#LabPlatform
18GamingServerTryHackMe
19OverlayFSTryHackMe
20Psycho BreakTryHackMe
21Bounty HackerTryHackMe
22CTFTryHackMe
23RootMeTryHackMe
24Pickle RickTryHackMe
25c4ptur3-th3-fl4gTryHackMe
26LibraryTryHackMe
27ThompsonTryHackMe
28Simple CTFTryHackMe
29LazyAdminTryHackMe
30AnonforceTryHackMe
31IgniteTryHackMe
32Wgel CTFTryHackMe
33KenobiTryHackMe
34DAVTryHackMe
35Ninja SkillsTryHackMe
36IceTryHackMe
37Lian_YuTryHackMe
38The Cod CaperTryHackMe
39BlasterTryHackMe
40StartupTryHackMe
41Chill HackTryHackMe
42Colddbox: EasyTryHackMe
43GLITCHTryHackMe
44All in OneTryHackMe
45ArchangelTryHackMe
46CyborgTryHackMe
47Lunizz CTFTryHackMe
48BadbyteTryHackMe
49TeamTryHackMe
50VulnNet: NodeTryHackMe
51VulnNet: InternalTryHackMe
52AtlasTryHackMe
53VulnNet: RoastedTryHackMe
54Cat PicturesTryHackMe
55MustacchioTryHackMe

04. Web Application Attacks#

Focus: Web fundamentals, SQL injection, and XSS
Labs: 49

From how the web works to hands-on exploitation: web fundamentals and OWASP first, then SQL injection (TryHackMe followed by PortSwigger), and finally the full PortSwigger XSS track covering reflected, stored, DOM-based, and context-specific XSS, plus exploitation and CSP bypass.

Web Basics#

#LabPlatform
1Web FundamentalsTryHackMe
2Web App Security 101TryHackMe
3Web Application BasicsTryHackMe
4JavaScript EssentialsTryHackMe
5Burp Suite: The BasicsTryHackMe
6OWASP Top 10 - 2021TryHackMe
7How Websites WorkTryHackMe
8HTTP in DetailTryHackMe
9OWASP Juice ShopTryHackMe
10DNS in DetailTryHackMe
11Putting It All TogetherTryHackMe
12Walking An ApplicationTryHackMe

SQL Injection - TryHackMe#

#LabPlatform
13SQL FundamentalsTryHackMe
14Advanced SQL InjectionTryHackMe
15SQL Injection LabTryHackMe

SQL Injection - PortSwigger: Basic#

#LabLevel
16SQL injection vulnerability in WHERE clause allowing retrieval of hidden dataApprentice
17SQL injection vulnerability allowing login bypassApprentice

SQL Injection - PortSwigger: Examining the Database#

#LabLevel
18Querying the database type and version on OraclePractitioner
19Querying the database type and version on MySQL and MicrosoftPractitioner
20Listing the database contents on non-Oracle databasesPractitioner
21Listing the database contents on OraclePractitioner

SQL Injection - PortSwigger: UNION Attacks#

#LabLevel
22UNION attack: determining the number of columnsPractitioner
23UNION attack: finding a column containing textPractitioner
24UNION attack: retrieving data from other tablesPractitioner
25UNION attack: retrieving multiple values in a single columnPractitioner

SQL Injection - PortSwigger: Blind#

#LabLevel
26Blind SQLi with conditional responsesPractitioner
27Blind SQLi with conditional errorsPractitioner
28Blind SQLi with time delaysPractitioner

XSS - Reflected & Stored#

#LabLevel
29Reflected XSS into HTML context with nothing encodedApprentice
30Stored XSS into HTML context with nothing encodedApprentice

XSS - DOM-Based#

#LabLevel
31DOM XSS in document.write sink using source location.searchApprentice
32DOM XSS in innerHTML sink using source location.searchApprentice
33DOM XSS in jQuery anchor href attribute sink using location.search sourceApprentice
34DOM XSS in jQuery selector sink using a hashchange eventApprentice
35DOM XSS in document.write sink using source location.search inside a select elementPractitioner
36DOM XSS in AngularJS expression with angle brackets and double quotes HTML-encodedPractitioner
37Reflected DOM XSSPractitioner
38Stored DOM XSSPractitioner

XSS - Contexts#

#LabLevel
39XSS in an attribute with angle brackets HTML-encodedApprentice
40XSS in an href attribute with double quotes HTML-encodedApprentice
41XSS into a JavaScript string with angle brackets HTML-encodedApprentice
42XSS in a HTML context with most tags and attributes blockedPractitioner
43XSS in a HTML context with all standard tags blockedPractitioner
44XSS with some SVG markup allowedPractitioner
45Reflected XSS in canonical link tagExpert

XSS - Exploitation#

#LabLevel
46Exploiting XSS to steal cookiesPractitioner
47Exploiting XSS to capture passwordsPractitioner
48Exploiting XSS to perform CSRFPractitioner

XSS - Content Security Policy#

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

Tips for Getting the Most Out of These Labs#

  • Take notes on every lab: the tool, the command, and the idea behind it, so you can come back to them later.
  • Avoid walkthroughs until you have genuinely tried on your own.
  • Repeat labs a few days later without looking at the solution. This is what makes the knowledge stick.
  • Do the CTF machines methodically: enumerate first, note every service and version, then exploit. The same process will carry you through the exam.

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.

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