🧑💻 Practice Labs & CTF Exercises
Test your skills with hands-on labs for each major web vulnerability. Filter by category or difficulty, reveal hints, and view solutions. All labs link to real practice platforms.
Lab Platforms Comparison
Choose the platform that fits your learning style and budget. Each excels in different areas:
| Platform | Pricing | Strengths | Best For |
|---|---|---|---|
| PortSwigger Web Security Academy | Free | Best structured web security curriculum; covers every OWASP category; official Burp labs | Dedicated web pentesting practice; beginners through advanced |
| TryHackMe | Free / £10/mo | Guided learning paths; browser-based VMs; beginner-friendly | Structured learning; those new to security |
| Hack The Box | Free / €14/mo | Realistic machines; competitive aspect; Pro Labs for enterprise scenarios | Intermediate-advanced; exam prep (OSCP, CPTS) |
| PentesterLab | Free / $20/mo | Focused web exercises; badge progression; covers modern vulns quickly | Web-specific skills; JWT, OAuth, deserialization |
| DVWA | Free (self-hosted) | Simple setup; adjustable difficulty; classic training tool | Local practice; basic injection & XSS |
| OWASP Juice Shop | Free (self-hosted) | Modern app (Node/Angular); 100+ challenges; CTF mode | Comprehensive self-hosted lab; OWASP Top 10 coverage |
Information
How to Practice Effectively
✅ Do
- • Try without hints first (30-60 min per challenge)
- • Document your approach — build a personal playbook
- • After solving, read the official writeup for new techniques
- • Practice each vuln class until it's second nature
- • Combine tools with manual testing — don't rely on scanners
❌ Don't
- • Jump to solutions immediately
- • Skip fundamentals for flashy exploits
- • Collect flags without understanding the technique
- • Only use automated tools — learn manual testing
- • Practice on real systems without authorization
Interactive Lab Explorer
Browse labs by vulnerability category and difficulty. Click on any lab for details, hints, and links to practice platforms.