Overview
This is the complete lab roadmap for OSCP+ preparation on this blog, in two parts:
- Part 1 - Course Modules: 171 TryHackMe labs across 20 numbered modules, following an OSCP+ preparation course from an introduction to cybersecurity through Active Directory, cloud security, and real-world capstone scenarios.
- Part 2 - Bonus Platforms: a curated set of additional free platforms and labs worth adding once you have worked through the modules, including Hack The Box’s Starting Point track (25 machines), the OverTheWire wargames (10 wargames), PentesterLab, CyberDefenders, VulnHub, picoCTF, local vulnerable apps (WebGoat, DVWA), and 77 additional PortSwigger Web Security Academy labs covering topics the module-based roadmap doesn’t reach (access control, CSRF, file upload, business logic, deserialization, and more).
Everything here was put together to be worked through in order: finish the modules first, then use Part 2 to keep practicing without the guardrails of a guided room.
This roadmap was prepared by Amr Abd El-Hamide for Netriders Academy. The bonus platforms in Part 2 are independent, community-run resources, not part of the Netriders Academy course material.
| Total course labs (Part 1) | 171 |
| Bonus platforms (Part 2) | 9 (including 77 extra PortSwigger labs) |
| Platform (Part 1) | TryHackMe |
| Modules covered | 20 |
Note: modules are numbered as in the original course material, so the numbering has gaps (modules 2 and 20-22 were not provided and are not covered here). A handful of rooms appear in more than one module because they are relevant to more than one topic; each appearance is counted. Free-tier availability on every platform below can change over time, so if you find something locked or moved, let me know and I will update the post.
Part 1: Course Modules
Module Map
| Module | Title | Focus | Labs |
|---|---|---|---|
| 01 | Introduction to Cybersecurity | Security principles and the pentesting mindset | 5 |
| 03 | Report Writing for Penetration Testers | Communicating findings clearly and professionally | 3 |
| 04 | Information Gathering | Scoping, reconnaissance, and Nmap | 20 |
| 05 | Vulnerability Scanning | Identifying and prioritizing vulnerabilities | 8 |
| 06 | Introduction to Web Applications | How web applications are built and how they behave | 14 |
| 07 | Common Web Application Attacks | Path traversal, file inclusion, upload flaws, and command injection | 10 |
| 08 | SQL Injection Attacks | Manual and automated SQL and NoSQL injection | 12 |
| 09 | Client-Side Attacks | Social engineering, phishing, and mobile security | 11 |
| 10 | Locating Public Exploits | OSINT and search-driven exploit discovery | 3 |
| 11 | Fixing Exploits | Adapting public exploits and understanding memory internals | 12 |
| 12 | Antivirus Evasion | AV, EDR, and XDR evasion techniques | 11 |
| 13 | Password Attacks | Hashing, cracking, and credential harvesting | 13 |
| 14 | Windows Privilege Escalation | From standard user to SYSTEM | 9 |
| 15 | Linux Privilege Escalation | From standard user to root | 7 |
| 16 | Port Redirection and SSH Tunneling | Pivoting traffic through compromised hosts | 4 |
| 17 | Tunneling Through Deep Packet Inspection | Traffic analysis and evading inspection | 8 |
| 18 | Metasploit Framework | Exploitation and post-exploitation with Metasploit | 8 |
| 19 | Active Directory Introduction and Enumeration | AD authentication, breaching, and enumeration | 7 |
| 23 | AWS: Attacking Cloud Infrastructure | Cloud security fundamentals and common pitfalls | 3 |
| 24 | Real World Scenarios | Capstone-style, end-to-end engagements | 3 |
Suggested Learning Path
Work through the modules in numerical order; the course is built so each one relies on the skills from the ones before it.
- Getting started: Module 1 (Introduction) -> Module 3 (Report Writing) -> Module 4 (Information Gathering) -> Module 5 (Vulnerability Scanning)
- Web applications: Module 6 -> Module 7 -> Module 8 (SQL Injection) -> Module 9 (Client-Side Attacks)
- Exploitation: Module 10 (Locating Public Exploits) -> Module 11 (Fixing Exploits) -> Module 12 (Antivirus Evasion)
- Post-exploitation: Module 13 (Password Attacks) -> Module 14 (Windows PrivEsc) -> Module 15 (Linux PrivEsc)
- Network and tooling: Module 16 (Port Redirection & Tunneling) -> Module 17 (Deep Packet Inspection) -> Module 18 (Metasploit)
- Active Directory and beyond: Module 19 (AD Introduction) -> Module 23 (AWS Cloud) -> Module 24 (Real World Scenarios)
Module 01 - Introduction to Cybersecurity
Focus: Security principles and the pentesting mindset
Labs: 5
The starting point of the course: core security principles, an overview of careers in the field, an introduction to offensive security, effective searching, and a first dive into what penetration testing actually involves.
| # | Lab | Platform |
|---|---|---|
| 1 | Security Principles | TryHackMe |
| 2 | Careers in Cyber | TryHackMe |
| 3 | Offensive Security Intro | TryHackMe |
| 4 | Search Skills | TryHackMe |
| 5 | Dive into Pentesting | TryHackMe |
Module 03 - Report Writing for Penetration Testers
Focus: Communicating findings clearly and professionally
Labs: 3
A skill that separates a good pentester from a great one: writing clear, actionable pentest reports, reporting alerts at a SOC L1 level, and retesting to confirm that findings have actually been fixed.
| # | Lab | Platform |
|---|---|---|
| 1 | Writing Pentest Reports | TryHackMe |
| 2 | SOC L1 Alert Reporting | TryHackMe |
| 3 | Retesting | TryHackMe |
Module 04 - Information Gathering
Focus: Scoping, reconnaissance, and Nmap
Labs: 20
How every engagement begins: security principles and pentesting fundamentals, planning and scoping, red team engagements and infrastructure, passive and active reconnaissance, a full Nmap track, and a first look at reconnaissance against AI systems.
| # | Lab | Platform |
|---|---|---|
| 1 | Principles of Security | TryHackMe |
| 2 | Pentesting Fundamentals | TryHackMe |
| 3 | Dive into Pentesting | TryHackMe |
| 4 | Penetration Testing Frameworks | TryHackMe |
| 5 | Planning and Scoping | TryHackMe |
| 6 | Red Team Engagements | TryHackMe |
| 7 | Guided Pentest: Infrastructure | TryHackMe |
| 8 | Red Team Recon | TryHackMe |
| 9 | Passive Reconnaissance | TryHackMe |
| 10 | Active Reconnaissance | TryHackMe |
| 11 | Nmap: Live Host Discovery | TryHackMe |
| 12 | Nmap: Basic Port Scans | TryHackMe |
| 13 | Nmap: Advanced Port Scans | TryHackMe |
| 14 | Further Nmap | TryHackMe |
| 15 | Nmap | TryHackMe |
| 16 | GREP | TryHackMe |
| 17 | You Got Mail | TryHackMe |
| 18 | Vulnversity | TryHackMe |
| 19 | AI System Reconnaissance | TryHackMe |
| 20 | AI Threat Modelling | TryHackMe |
Module 05 - Vulnerability Scanning
Focus: Identifying and prioritizing vulnerabilities
Labs: 8
Turning recon into a target list: understanding vulnerabilities and how scanners work, vulnerability management, network discovery and detection, scanning with OpenVAS and Nessus, and a first pass at exploitation with Metasploit.
| # | Lab | Platform |
|---|---|---|
| 1 | Vulnerabilities 101 | TryHackMe |
| 2 | Vulnerability Scanner Overview | TryHackMe |
| 3 | Vulnerability Management | TryHackMe |
| 4 | Network Discovery & Detection | TryHackMe |
| 5 | OpenVAS | TryHackMe |
| 6 | Nessus | TryHackMe |
| 7 | Metasploit: Exploitation | TryHackMe |
| 8 | Support | TryHackMe |
Module 06 - Introduction to Web Applications
Focus: How web applications are built and how they behave
Labs: 14
The foundation for every web attack module that follows: how websites work, HTTP and DNS in detail, protocols and servers, JavaScript essentials, session management, walking an application methodically, content discovery, subdomain enumeration, a first look at XSS, and web server attacks.
| # | Lab | Platform |
|---|---|---|
| 1 | How Websites Work | TryHackMe |
| 2 | HTTP in Detail | TryHackMe |
| 3 | Protocols and Servers | TryHackMe |
| 4 | DNS in Detail | TryHackMe |
| 5 | Web Application Basics | TryHackMe |
| 6 | Session Management | TryHackMe |
| 7 | JavaScript Essentials | TryHackMe |
| 8 | Walking An Application | TryHackMe |
| 9 | Walking An Application (Legacy) | TryHackMe |
| 10 | Content Discovery | TryHackMe |
| 11 | Subdomain Enumeration | TryHackMe |
| 12 | XSS | TryHackMe |
| 13 | Web Server Attacks | TryHackMe |
| 14 | Web Server Attacks 2 | TryHackMe |
Module 07 - Common Web Application Attacks
Focus: Path traversal, file inclusion, upload flaws, and command injection
Labs: 10
Hands-on exploitation of common web flaws, starting with the Mr Robot CTF and moving through file path traversal, file inclusion, upload vulnerabilities, OS command injection, and two CTF-style boxes to put it all together.
| # | Lab | Platform |
|---|---|---|
| 1 | Mr Robot CTF | TryHackMe |
| 2 | File Path Traversal | TryHackMe |
| 3 | File Inclusion | TryHackMe |
| 4 | Upload Vulnerabilities | TryHackMe |
| 5 | OS Command Injection | TryHackMe |
| 6 | Injectics | TryHackMe |
| 7 | Modern Web Stacks | TryHackMe |
| 8 | Daily Bugle | TryHackMe |
| 9 | Recruit Web Challenge | TryHackMe |
| 10 | Hammer | TryHackMe |
Module 08 - SQL Injection Attacks
Focus: Manual and automated SQL and NoSQL injection
Labs: 12
A dedicated SQL injection track: database and SQL basics, manual injection fundamentals and practice, automating attacks with SQLMap, a look at NoSQL injection, and several CTF-style rooms to reinforce the technique.
| # | Lab | Platform |
|---|---|---|
| 1 | Database and SQL Basics | TryHackMe |
| 2 | SQL Fundamentals | TryHackMe |
| 3 | SQL Injection Lab | TryHackMe |
| 4 | SQLi Lab | TryHackMe |
| 5 | Advanced SQL Injection | TryHackMe |
| 6 | SQLMap: The Basics | TryHackMe |
| 7 | SQLMap | TryHackMe |
| 8 | NoSQL Injection | TryHackMe |
| 9 | Avengers Blog | TryHackMe |
| 10 | SQHell | TryHackMe |
| 11 | Sequel Dump | TryHackMe |
| 12 | Prioritise | TryHackMe |
Module 09 - Client-Side Attacks
Focus: Social engineering, phishing, and mobile security
Labs: 11
Attacks that target the human rather than the machine: OSINT and search skills, understanding human attack vectors, a full phishing track including detection and simulated campaigns, mobile security, and building effective wordlists.
| # | Lab | Platform |
|---|---|---|
| 1 | Search Skills | TryHackMe |
| 2 | SomeSINT | TryHackMe |
| 3 | Human Attack Vectors | TryHackMe |
| 4 | Phishing Emails 1 | TryHackMe |
| 5 | Phishing (Advent of Cyber 2025) | TryHackMe |
| 6 | Phishing | TryHackMe |
| 7 | Spotting Phishing (Advent of Cyber 2025) | TryHackMe |
| 8 | Phishing: HiddenEye | TryHackMe |
| 9 | Silent Monitor | TryHackMe |
| 10 | Mobile Security | TryHackMe |
| 11 | Introduction to Wordlists | TryHackMe |
Module 10 - Locating Public Exploits
Focus: OSINT and search-driven exploit discovery
Labs: 3
Finding out what has already been discovered about a target: Google Dorking, refining your search skills, and using Shodan to locate exposed systems and known vulnerabilities.
| # | Lab | Platform |
|---|---|---|
| 1 | Google Dorking | TryHackMe |
| 2 | Search Skills | TryHackMe |
| 3 | Shodan.io | TryHackMe |
Module 11 - Fixing Exploits
Focus: Adapting public exploits and understanding memory internals
Labs: 12
Public exploits rarely work out of the box. This module covers the internals you need to fix them: x86-64 architecture, Windows internals and memory, buffer overflow fundamentals, several real CVEs to practice against, and runtime detection evasion.
| # | Lab | Platform |
|---|---|---|
| 1 | x86-64 Architecture | TryHackMe |
| 2 | Windows Internals | TryHackMe |
| 3 | Windows Memory and Processes | TryHackMe |
| 4 | Buffer Overflow Prep | TryHackMe |
| 5 | Sudo Vulnerabilities: Buffer Overflow | TryHackMe |
| 6 | Tomcat (CVE-2024-50379) | TryHackMe |
| 7 | PaperCut | TryHackMe |
| 8 | React2Shell (CVE-2025-55182) | TryHackMe |
| 9 | Critical | TryHackMe |
| 10 | No Name CTF | TryHackMe |
| 11 | Runtime Detection Evasion | TryHackMe |
| 12 | Abusing Windows Internals | TryHackMe |
Module 12 - Antivirus Evasion
Focus: AV, EDR, and XDR evasion techniques
Labs: 11
Getting payloads past modern defenses: how antivirus, EDR, and XDR work, malware classification, obfuscation principles, PowerShell for pentesters, and hands-on signature and sandbox evasion.
| # | Lab | Platform |
|---|---|---|
| 1 | Intro to Antivirus | TryHackMe |
| 2 | Introduction to EDRs | TryHackMe |
| 3 | XDR Introduction | TryHackMe |
| 4 | Malware Classification | TryHackMe |
| 5 | Obfuscation Principles | TryHackMe |
| 6 | PowerShell for Pentesters | TryHackMe |
| 7 | Signature Evasion | TryHackMe |
| 8 | AV Evasion: Shellcode | TryHackMe |
| 9 | Bypass | TryHackMe |
| 10 | Bypass Disable Functions | TryHackMe |
| 11 | Sandbox Evasion | TryHackMe |
Module 13 - Password Attacks
Focus: Hashing, cracking, and credential harvesting
Labs: 13
The full password attack lifecycle: hashing fundamentals and cryptography, online and offline password attacks with Hydra and John the Ripper, cracking real hashes, exploiting HackPark, recent CVEs involving credentials, and credential harvesting.
| # | Lab | Platform |
|---|---|---|
| 1 | Hashing Basics | TryHackMe |
| 2 | Hashing - Crypto 101 | TryHackMe |
| 3 | Public Key Cryptography | TryHackMe |
| 4 | Password Attacks | TryHackMe |
| 5 | John The Ripper: The Basics | TryHackMe |
| 6 | Hydra | TryHackMe |
| 7 | Crack The Hash | TryHackMe |
| 8 | Crack The Hash Level 2 | TryHackMe |
| 9 | HackPark | TryHackMe |
| 10 | Attacks on Encrypted Files (Advent of Cyber 2025) | TryHackMe |
| 11 | Erlang/OTP SSH (CVE-2025-32433) | TryHackMe |
| 12 | Outlook NTLM Leak | TryHackMe |
| 13 | Credential Harvesting | TryHackMe |
Module 14 - Windows Privilege Escalation
Focus: From standard user to SYSTEM
Labs: 9
Escalating privileges on Windows: the command line, Windows internals and memory, a full Windows PrivEsc track, the LocalPotato technique, an arena to practice against, and establishing local persistence once you have escalated.
| # | Lab | Platform |
|---|---|---|
| 1 | Windows Command Line | TryHackMe |
| 2 | Windows Internals | TryHackMe |
| 3 | Windows Memory and Processes | TryHackMe |
| 4 | Windows PrivEsc | TryHackMe |
| 5 | Windows 10 PrivEsc | TryHackMe |
| 6 | LocalPotato | TryHackMe |
| 7 | Abusing Windows Internals | TryHackMe |
| 8 | Windows PrivEsc Arena | TryHackMe |
| 9 | Windows Local Persistence | TryHackMe |
Module 15 - Linux Privilege Escalation
Focus: From standard user to root
Labs: 7
The Linux side of privilege escalation: shell fundamentals, process analysis, enumeration for privesc, a full Linux PrivEsc track, and two CTF-style boxes to apply the technique end to end.
| # | Lab | Platform |
|---|---|---|
| 1 | Intro to Shells | TryHackMe |
| 2 | Linux Process Analysis | TryHackMe |
| 3 | Linux PrivEsc Enumeration | TryHackMe |
| 4 | Linux Privilege Escalation | TryHackMe |
| 5 | Common Linux Privesc | TryHackMe |
| 6 | IronShade | TryHackMe |
| 7 | Jump | TryHackMe |
Module 16 - Port Redirection and SSH Tunneling
Focus: Pivoting traffic through compromised hosts
Labs: 4
Moving traffic where you need it: data exfiltration, DNS manipulation, an introduction to command and control infrastructure, and Windows memory and network internals that underpin tunneling techniques.
| # | Lab | Platform |
|---|---|---|
| 1 | Data Exfiltration | TryHackMe |
| 2 | DNS Manipulation | TryHackMe |
| 3 | Intro to C2 | TryHackMe |
| 4 | Windows Memory and Network | TryHackMe |
Module 17 - Tunneling Through Deep Packet Inspection
Focus: Traffic analysis and evading inspection
Labs: 8
Understanding what deep packet inspection sees: a full Wireshark track, TShark, packet and frame fundamentals, traffic analysis, Snort, and wireless security.
| # | Lab | Platform |
|---|---|---|
| 1 | Wireshark: The Basics | TryHackMe |
| 2 | Wireshark | TryHackMe |
| 3 | Wireshark: Packet Operations | TryHackMe |
| 4 | TShark: The Basics | TryHackMe |
| 5 | Packets & Frames | TryHackMe |
| 6 | Wireshark: Traffic Analysis | TryHackMe |
| 7 | Snort | TryHackMe |
| 8 | Wireless Security | TryHackMe |
Module 18 - Metasploit Framework
Focus: Exploitation and post-exploitation with Metasploit
Labs: 8
A dedicated deep dive into Metasploit: introduction, exploitation, Meterpreter, the framework basics, post-exploitation, shell generation and delivery, payload generation, and scanning combined with exploitation.
| # | Lab | Platform |
|---|---|---|
| 1 | Metasploit: Introduction | TryHackMe |
| 2 | Metasploit: Exploitation | TryHackMe |
| 3 | Meterpreter | TryHackMe |
| 4 | Metasploit: The Basics | TryHackMe |
| 5 | Metasploit: Post-Exploitation | TryHackMe |
| 6 | Shell Generation and Delivery | TryHackMe |
| 7 | Metasploit: Payload Generation | TryHackMe |
| 8 | Metasploit: Scanning and Exploitation | TryHackMe |
Module 19 - Active Directory Introduction and Enumeration
Focus: AD authentication, breaching, and enumeration
Labs: 7
The starting point for attacking Active Directory: how AD authentication works, an introduction to breaching AD, understanding a Windows computer from the inside, basic and authenticated enumeration, and a full breaching and enumeration exercise.
| # | Lab | Platform |
|---|---|---|
| 1 | Intro to Active Directory Authentication | TryHackMe |
| 2 | Introduction to Active Directory Breaching | TryHackMe |
| 3 | Inside a Computer | TryHackMe |
| 4 | AD Basic Enumeration | TryHackMe |
| 5 | AD Authenticated Enumeration | TryHackMe |
| 6 | Breaching AD | TryHackMe |
| 7 | AD Enumeration | TryHackMe |
Module 23 - AWS: Attacking Cloud Infrastructure
Focus: Cloud security fundamentals and common pitfalls
Labs: 3
A focused look at cloud security: an introduction to cloud security concepts, the fundamentals that apply across providers, and the common pitfalls and misconfigurations that lead to real breaches.
| # | Lab | Platform |
|---|---|---|
| 1 | Introduction to Cloud Security | TryHackMe |
| 2 | Cloud Security Fundamentals | TryHackMe |
| 3 | Cloud Security Pitfalls | TryHackMe |
Module 24 - Real World Scenarios
Focus: Capstone-style, end-to-end engagements
Labs: 3
The final module: full, realistic engagements that combine reconnaissance, exploitation, privilege escalation, and lateral movement into a single scenario, capped with the Wreath network for a multi-machine pivoting exercise.
| # | Lab | Platform |
|---|---|---|
| 1 | Red Team Capstone Challenge | TryHackMe |
| 2 | Holo | TryHackMe |
| 3 | Wreath Network | TryHackMe |
Tips for Getting the Most Out of These Labs
- Take detailed notes from Module 1 onward. Report writing is Module 3 for a reason: build the habit of documenting as you go, not after you finish.
- Repeat Module 4’s reconnaissance workflow on every later CTF-style box before looking anything up. Consistent methodology is what the exam actually tests.
- Don’t skip the “boring” modules. Vulnerability scanning, tunneling, and report writing rarely feel as exciting as exploitation, but they are just as heavily tested.
- Revisit privilege escalation (Modules 14 and 15) constantly. These are the modules most worth repeating from memory, without notes, until they are automatic.
These labs are for learning and practice in the provided lab environments only. Never test any technique on systems you do not own or have explicit permission to test.
Part 2: Bonus - More Free Platforms Beyond TryHackMe
Once you’ve worked through the modules above, these free platforms round out your OSCP+ preparation: less hand-holding than a guided TryHackMe room, more of the ambiguity you’ll face in the exam.
A1. Hack The Box: Starting Point
Focus: A guided, beginner-friendly introduction to the Hack The Box platform
Free content: 3 tiers, most machines free
Hack The Box is the natural next step after TryHackMe’s guided rooms: less hand-holding, more “figure it out.” Starting Point is HTB’s own on-ramp: a linear track of easy machines that teaches you to connect over VPN, enumerate a target, and get your first foothold. Most Starting Point machines are free; a few are VIP-only but never block your progress through the free ones. See the official introduction to Starting Point for how tiers work, then find each machine by name inside the Starting Point section of the HTB app.
Tier 0: The Absolute Fundamentals
Single-step machines, each focused on connecting to and interacting with one service.
| # | Machine |
|---|---|
| 1 | Meow |
| 2 | Fawn |
| 3 | Dancing |
| 4 | Redeemer |
| 5 | Explosion |
| 6 | Preignition |
| 7 | Mongod |
| 8 | Synced |
Tier 1: Fundamental Exploitation
A bit more complexity, still one primary exploitation step per machine.
| # | Machine |
|---|---|
| 1 | Appointment |
| 2 | Sequel |
| 3 | Crocodile |
| 4 | Responder |
| 5 | Three |
| 6 | Ignition |
| 7 | Bike |
| 8 | Funnel |
| 9 | Pennyworth |
| 10 | Tactics |
Tier 2: Full-Fledged Machines
Multi-step machines with both a user and a root/system flag: enumerate, get a foothold, then escalate.
| # | Machine |
|---|---|
| 1 | Archetype |
| 2 | Oopsie |
| 3 | Vaccine |
| 4 | Unified |
| 5 | Included |
| 6 | Markup |
| 7 | Base |
A2. OverTheWire: Wargames
Focus: Terminal-based, SSH-driven wargames
Free content: All wargames listed below
OverTheWire is one of the oldest free platforms in the field: no browser, no VM, just SSH into a level and find the password to the next one. It needs zero setup, which makes it a great companion to run alongside any other course. Start with Bandit if you are new to Linux; the rest can be tackled roughly in the order below as your skills grow.
| # | Wargame | Focus | Level | Description |
|---|---|---|---|---|
| 1 | Bandit | Bandit | Beginner | 34 levels of Linux fundamentals: navigating the filesystem, permissions, SSH, and basic text processing. The mandatory starting point for this platform. |
| 2 | Natas | Natas | Web Security | A level-based web security wargame: source code review, common web vulnerabilities, and creative bypasses, all in the browser. |
| 3 | Leviathan | Leviathan | Beginner to Intermediate | A short wargame focused on reading and reasoning about compiled programs without access to source code. |
| 4 | Krypton | Krypton | Cryptography | Classic and modern cryptography challenges, from simple substitution ciphers to more advanced encoding schemes. |
| 5 | Narnia | Narnia | Binary Exploitation (Intro) | An introduction to binary exploitation and memory corruption on Linux. |
| 6 | Behemoth | Behemoth | Binary Exploitation (Intermediate) | A step up from Narnia, with more advanced binary exploitation scenarios. |
| 7 | Utumno | Utumno | Advanced | Advanced binary exploitation for players who have finished Narnia and Behemoth. |
| 8 | Maze | Maze | Advanced | A maze-like advanced wargame combining several exploitation techniques. |
| 9 | Vortex | Vortex | Binary Exploitation | Another binary exploitation wargame with its own progression of challenges. |
| 10 | Manpage | Manpage | Linux/Unix | Challenges built around reading and understanding Unix man pages. |
A3. PentesterLab: Free Exercises
Focus: Web application vulnerabilities, with source code review
Free content: A rotating set of exercises across every badge category
PentesterLab stands out for pairing exploitation with source code review: you don’t just send a payload, you see the vulnerable code and understand exactly why it’s exploitable. Exercises are grouped into badges (Introduction, Unix, Essential, Web, Authentication/Authorization, API, Code Review, and more), and each badge has a mix of free and PRO-only exercises, clearly marked “Free Tier” on the exercise page. Work through the free exercises in the Introduction and Unix badges first, then dip into Web and Authentication/Authorization as you finish the web-focused roadmaps elsewhere on this blog.
A4. Root-Me: Wide-Coverage Challenges
Focus: Broad, self-directed challenges across many categories
Free content: The large majority of the platform
Root-Me is a long-running, community-driven challenge platform covering web, cryptography, network, steganography, reverse engineering, and more, in a single points-based scoreboard. It has less structure than TryHackMe or a guided roadmap, which makes it a good place to go once you already know a topic and want a wide bank of realistic challenges to test yourself against.
A5. CyberDefenders: Blue Team Practice
Focus: Log analysis, malware analysis, and incident response, from the defender’s side
Free content: A large set of downloadable challenges
Every roadmap on this blog so far leans offensive. CyberDefenders is the counterweight: free, downloadable “Challenges” built around real PCAP files, disk images, and logs, each with a set of investigative questions to answer. It’s excellent practice for the Digital Forensics, Threat Hunting, and CySA+-style material covered elsewhere on this blog, from the other side of the fence.
A6. VulnHub: Downloadable Vulnerable Machines
Focus: Full boot2root VMs you run yourself
Free content: The entire library
VulnHub hosts a large, entirely free library of downloadable vulnerable virtual machines. Unlike TryHackMe or Hack The Box, there is no hosted infrastructure: you download an OVA or VMDK and run it locally in VirtualBox or VMware. That makes it slower to get started, but it’s a good way to practice working entirely offline and to build comfort with setting up your own lab environment, a skill the exam labs for certifications like OSCP assume you already have.
A7. picoCTF: Beginner-Friendly CTF Archive
Focus: A large, permanent archive of beginner-to-intermediate CTF challenges
Free content: The entire archive, year-round
picoCTF, run by Carnegie Mellon University, was built as a yearly competition for students but keeps its full archive of past challenges open year-round for free practice. It spans binary exploitation, cryptography, web exploitation, forensics, and reverse engineering, each with a difficulty rating, and is a good source of short, self-contained challenges when you want a single problem to solve in an hour rather than a full machine.
A8. WebGoat & DVWA: Local Vulnerable Web Apps
Focus: OWASP Top 10 practice you run entirely on your own machine
Free content: Both are fully open source
Two classic, self-hosted training applications worth having in your own lab, both free and open source:
- OWASP WebGoat: a deliberately insecure Java application maintained by OWASP, with guided lessons for each vulnerability class in the OWASP Top 10.
- DVWA (Damn Vulnerable Web Application): a PHP/MySQL application with adjustable difficulty levels (low, medium, high) for the same vulnerability, so you can see how the same attack needs to adapt as defenses get stronger.
Both run easily in Docker and are worth keeping around as a no-time-limit sandbox for testing a payload or technique you just learned somewhere else.
A9. PortSwigger Web Security Academy: Additional Topics
Focus: Web vulnerability classes not already covered by the XSS and SQL injection tracks in the other roadmaps on this blog
Labs: 77 across 14 topics
The web-focused roadmaps elsewhere on this blog (eWAPT v2, eCPPT v3, eJPT v2, the Advanced Web Application Pentest roadmap) already cover PortSwigger labs for XSS, SQL injection, NoSQL injection, SSRF, and API testing in depth. This section fills in the rest of the Web Security Academy: access control, CSRF, file upload, business logic flaws, insecure deserialization, information disclosure, race conditions, path traversal, CORS, clickjacking, OAuth, JWT, server-side template injection, and web cache poisoning. As with the other PortSwigger sections on this blog, work through Apprentice labs in a topic before moving on to Practitioner and Expert.
Access Control
Apprentice-to-Practitioner labs on vertical and horizontal privilege escalation, IDOR, and access control bypasses.
| # | Lab | Level |
|---|---|---|
| 1 | Unprotected admin functionality | Apprentice |
| 2 | Unprotected admin functionality with unpredictable URL | Apprentice |
| 3 | User role controlled by request parameter | Apprentice |
| 4 | User role can be modified in user profile | Apprentice |
| 5 | URL-based access control can be circumvented | Practitioner |
| 6 | Method-based access control can be circumvented | Practitioner |
| 7 | Multi-step process with no access control on one step | Practitioner |
| 8 | Referer-based access control | Practitioner |
CSRF (Cross-Site Request Forgery)
Constructing CSRF attacks and bypassing the most common defenses: tokens, SameSite cookies, and Referer validation.
| # | Lab | Level |
|---|---|---|
| 1 | CSRF vulnerability with no defenses | Apprentice |
| 2 | CSRF where token validation depends on request method | Practitioner |
| 3 | CSRF where token validation depends on token being present | Practitioner |
| 4 | CSRF where token is not tied to user session | Practitioner |
| 5 | CSRF where token is tied to non-session cookie | Practitioner |
| 6 | SameSite Strict bypass via client-side redirect | Practitioner |
| 7 | SameSite Lax bypass via cookie refresh | Expert |
File Upload Vulnerabilities
Uploading a web shell through weak validation: content-type checks, extension blacklists, path traversal, and race conditions.
| # | Lab | Level |
|---|---|---|
| 1 | Remote code execution via web shell upload | Apprentice |
| 2 | Web shell upload via Content-Type restriction bypass | Apprentice |
| 3 | Web shell upload via path traversal | Practitioner |
| 4 | Web shell upload via extension blacklist bypass | Practitioner |
| 5 | Web shell upload via obfuscated file extension | Practitioner |
| 6 | Remote code execution via polyglot web shell upload | Expert |
Business Logic Vulnerabilities
Flaws that come from broken assumptions in an application’s workflow rather than from a technical injection point.
| # | Lab | Level |
|---|---|---|
| 1 | Excessive trust in client-side controls | Apprentice |
| 2 | High-level logic vulnerability | Apprentice |
| 3 | Inconsistent security controls | Apprentice |
| 4 | Flawed enforcement of business rules | Practitioner |
| 5 | Low-level logic flaw | Practitioner |
| 6 | Insufficient workflow validation | Practitioner |
| 7 | Authentication bypass via flawed state machine | Practitioner |
| 8 | Infinite money logic flaw | Expert |
Insecure Deserialization
Manipulating serialized data to inject malicious objects, from basic tampering through to building a custom gadget chain.
| # | Lab | Level |
|---|---|---|
| 1 | Modifying serialized objects | Apprentice |
| 2 | Modifying serialized data types | Practitioner |
| 3 | Using application functionality to exploit insecure deserialization | Practitioner |
| 4 | Arbitrary object injection in PHP | Practitioner |
| 5 | Exploiting Java deserialization with Apache Commons | Practitioner |
| 6 | Exploiting Python deserialization with Pickle | Practitioner |
| 7 | Developing a custom gadget chain for Java deserialization | Expert |
Information Disclosure
Finding sensitive data a site unintentionally reveals, through error messages, debug pages, backups, and version control history.
| # | Lab | Level |
|---|---|---|
| 1 | Information disclosure in error messages | Apprentice |
| 2 | Information disclosure on debug page | Apprentice |
| 3 | Source code disclosure via backup files | Practitioner |
| 4 | Authentication bypass via information disclosure | Practitioner |
| 5 | Information disclosure via version control history | Practitioner |
Race Conditions
Exploiting timing windows in multi-step processes, from single-endpoint races to limit-overrun and multi-endpoint attacks.
| # | Lab | Level |
|---|---|---|
| 1 | Limit overrun race conditions | Apprentice |
| 2 | Bypassing rate limits via race conditions | Practitioner |
| 3 | Multi-endpoint race conditions | Practitioner |
| 4 | Single-endpoint race conditions | Practitioner |
| 5 | Partial construction race conditions | Expert |
Path Traversal
Reading files outside a web root through directory traversal sequences, and bypassing common filters and sanitization.
CORS (Cross-Origin Resource Sharing)
Exploiting overly permissive CORS configurations to read data across origins.
| # | Lab | Level |
|---|---|---|
| 1 | CORS vulnerability with basic origin reflection | Practitioner |
| 2 | CORS vulnerability with trusted null origin | Practitioner |
| 3 | CORS vulnerability with trusted insecure protocols | Practitioner |
Clickjacking
Tricking a user into clicking something different from what they perceive, and bypassing CSRF tokens and frame-buster scripts along the way.
| # | Lab | Level |
|---|---|---|
| 1 | Basic clickjacking with CSRF token protection | Apprentice |
| 2 | Clickjacking with form input prefilled from a URL parameter | Apprentice |
| 3 | Clickjacking with a frame buster script | Practitioner |
| 4 | Multistep clickjacking | Practitioner |
OAuth Authentication
Exploiting flawed OAuth 2.0 implementations, from broken redirect_uri validation to account hijacking.
| # | Lab | Level |
|---|---|---|
| 1 | Authentication bypass via OAuth implicit flow | Practitioner |
| 2 | Forced OAuth profile linking | Practitioner |
| 3 | OAuth account hijacking via redirect_uri | Practitioner |
| 4 | Flawed CSRF protection allows OAuth account hijacking | Practitioner |
| 5 | OAuth account hijacking via open redirect | Expert |
JWT (JSON Web Tokens)
Bypassing authentication by attacking the JWT itself: unverified signatures, weak keys, and header injection.
| # | Lab | Level |
|---|---|---|
| 1 | JWT authentication bypass via unverified signature | Apprentice |
| 2 | JWT authentication bypass via flawed signature verification | Apprentice |
| 3 | JWT authentication bypass via weak signing key | Practitioner |
| 4 | JWT authentication bypass via jwk header injection | Practitioner |
| 5 | JWT authentication bypass via jku header injection | Practitioner |
| 6 | JWT authentication bypass via kid header path traversal | Practitioner |
Server-Side Template Injection (SSTI)
Injecting into a template engine to achieve remote code execution, from basic detection to exploiting an unknown language.
Web Cache Poisoning
Poisoning a cache with a malicious response by exploiting unkeyed inputs: headers, query strings, and cookies.
| # | Lab | Level |
|---|---|---|
| 1 | Web cache poisoning with an unkeyed header | Practitioner |
| 2 | Web cache poisoning with an unkeyed cookie | Practitioner |
| 3 | Web cache poisoning with multiple headers | Practitioner |
| 4 | Combining web cache poisoning vulnerabilities | Expert |
How to Fit These Into Your Study Plan
- Run OverTheWire Bandit in parallel with any course. It needs no setup, takes 30 minutes here and there, and directly reinforces the Linux fundamentals every other roadmap on this blog assumes you already have.
- Use Hack The Box Starting Point once you’ve finished a TryHackMe-based roadmap. The lack of hand-holding is the point: it tests whether the methodology actually stuck.
- Keep CyberDefenders in rotation if you’re working through the CySA+ or DFIR roadmaps. It’s the closest free equivalent to the log and PCAP analysis those exams actually test.
- Set up WebGoat or DVWA locally once, and leave them running. They’re the fastest way to test a technique the moment you read about it, without spinning up a TryHackMe room.
These platforms are for learning and practice in the environments they provide only. Never test any technique on systems you do not own or have explicit permission to test.
