Web Security Training Platform

Master cybersecurity vulnerabilities through hands-on labs designed to challenge and enhance your penetration testing skills.

217+
Labs Available
22
Vulnerability Types
3
Difficulty Levels
100%
Hands-On

Vulnerability Categories

Cross-Site Scripting (XSS)

LAB 1
Easy Training
Reflected XSS - Basic Input
LAB 2
Easy Training
Reflected XSS - Script Tag Filter Evasion
LAB 3
Medium Training
Reflected XSS - Script & Img Tag Filter
LAB 4
Medium Training
Reflected XSS - Case-Insensitive Filter Bypass
LAB 5
Hard Training
Reflected XSS - Less-Than Sign Filter
LAB 6
Hard Training
Reflected XSS in HTML Title Tag
LAB 7
Easy Training
Reflected XSS in Page Heading
LAB 8
Easy Training
Reflected XSS - Function Name Filter
LAB 9
Medium Training
Reflected XSS - Extended Function Filter
LAB 10
Medium Training
Reflected XSS - Event Handler Filter
LAB 11
Hard Training
Reflected XSS - Multi-Parameter Filter Evasion
LAB 12
Hard Training
Reflected XSS - Encoding Bypass Attempts
LAB 13
Hard Training
Reflected XSS - Mixed Security Parameters
LAB 14
Hard Training
Reflected XSS - String Concatenation Bypass
LAB 16
Hard Training
Reflected XSS in Search Function
LAB 17
Hard Training
Reflected XSS in Category Filter
LAB 18
Hard Training
Stored XSS - User Comments System
LAB 19
Hard Training
Stored XSS - User Profile Management
LAB 20
Hard Training
Stored XSS - Blog Post System
LAB 21
Hard Training
Stored XSS - Support Ticket System
LAB 22
Hard Training
Stored XSS - Admin Panel Settings
LAB 50
Hard Training
Self XSS via POST Parameter
LAB 51
Hard Training
POST-Based Reflected XSS
LAB 52
Hard Training
POST XSS in Input Tag Value
LAB 53
Hard Training
POST XSS in Document Title
LAB 54
Hard Training
DOM-based XSS with jQuery
LAB 55
Hard Real World
Reflected XSS in JS Analytics Context (Equifax — HackerOne #1818163)
LAB 56
Low Real World
Reflected XSS in HTML Attribute Context (PUBG — HackerOne #751870)
LAB 57
Low Real World
XSS via javascript: URI in Redirect Parameter (Shopify — HackerOne #1940245)
LAB 58
Medium Real World
Reflected XSS in URL Path Segment (Imgur Mobile — HackerOne #149855)
LAB 59
Hard Real World
Reflected XSS via Unquoted Attribute Injection (Reddit — HackerOne #1549206)
LAB 60
Hard Real World
Stored XSS in Report Name Field (MoPub / Twitter — HackerOne #485748)
LAB 61
Medium Real World
Stored XSS via Rich Text Editor HTML Tab in Article Body — Quill CMS (Shopify — HackerOne #1147433)
LAB 62
Medium Real World
Stored XSS in Profile Signature Field — DevAsk Forum (Acronis — HackerOne #1084183)
LAB 63
Medium Real World
Blind Stored XSS in Company Name (Informatica — HackerOne #1011888)
LAB 64
Hard Real World
Blind XSS via Support Ticket Form — ZAP-Hosting (Name, Subject & Message fields)
LAB 65
Medium Real World HackerOne #474656
DOM XSS via URL Tracking Parameter — HackerOne Careers
?lever- tracking param → jQuery.append() unsanitized sink
LAB 66
Medium Real World HackerOne #324303
DOM XSS via URL Hash Fragment — MyCrypto Wallet
#send-transaction hash → innerHTML unsanitized sink
LAB 67
Hard Real World HackerOne #396493
Reflected DOM XSS via URL + prettyPhoto Hash Chain — Starbucks UK
?slug= → canonical link attr injection + prettyPhoto jQuery trigger
LAB 68
Medium Real World HackerOne #704266
DOM XSS via Hash in jQuery Fancybox Selector — ForeScout Technologies
window.location.hash → .html() unsanitized sink
LAB 69
Medium Real World HackerOne #1004833
DOM XSS via javascript: URI in location.replace — Informatica IQ Card
document.location.search → location.replace() navigation sink
LAB 1
Easy Training
PUNISHMENT LAB 1
LAB 2
Easy Training
PUNISHMENT LAB 2
LAB 3
Medium Training
PUNISHMENT LAB 3
LAB 4
Medium Training
PUNISHMENT LAB 4
LAB 5
Hard Training
PUNISHMENT LAB 5
LAB 6
Hard Training
PUNISHMENT LAB 6
LAB 7
Easy Training
PUNISHMENT LAB 7
LAB 8
Easy Training
PUNISHMENT LAB 8
LAB 9
Medium Training
PUNISHMENT LAB 9
LAB 10
Medium Training
PUNISHMENT LAB 10
LAB 11
Hard Training
PUNISHMENT LAB 11
LAB 12
Hard Training
PUNISHMENT LAB 12
LAB 13
Hard Training
PUNISHMENT LAB 13
LAB 14
Hard Training
PUNISHMENT LAB 14
LAB 15
Hard Training
PUNISHMENT LAB 15
LAB 16
Hard Training
PUNISHMENT LAB 16
LAB 17
Hard Training
PUNISHMENT LAB 17
LAB 18
Hard Training
PUNISHMENT LAB 18
LAB 19
Hard Training
PUNISHMENT LAB 19
LAB 20
Hard Training
PUNISHMENT LAB 20
LAB 21
Hard Training
PUNISHMENT LAB 21
LAB 22
Hard Training
PUNISHMENT LAB 22
LAB 23
Hard Training
PUNISHMENT LAB 23
LAB 24
Hard Training
PUNISHMENT LAB 24
LAB 25
Hard Training
PUNISHMENT LAB 25
LAB 26
Hard Training
PUNISHMENT LAB 26
LAB 27
Hard Training
PUNISHMENT LAB 27
LAB 28
Hard Training
PUNISHMENT LAB 28
LAB 29
Hard Training
PUNISHMENT LAB 29
LAB 30
Hard Training
PUNISHMENT LAB 30
LAB 31
Hard Training
PUNISHMENT LAB 31
LAB 32
Hard Training
PUNISHMENT LAB 32
LAB 33
Hard Training
PUNISHMENT LAB 33
LAB 34
Hard Training
PUNISHMENT LAB 34

HTML Injection (HTMLI)

LAB 1
Easy Real World
HTML Injection in Support Chat (LinkedIn — HackerOne #3079966)
LAB 2
Easy Training
Reflected HTML Injection via Search Parameter (E-commerce — Common Real-World Pattern)
LAB 3
Easy Real World
Stored HTML Injection via Nickname in Wallet-Share Email (Romit - HackerOne #57914)
LAB 4
Easy Real World
Stored HTML Tag Injection via Profile Name in Snippets Page (GitLab — HackerOne #358001)
LAB 5
Medium Real World
HTML Injection via First/Last Name in Confirmation Email (HackerOne — #1374017)

Open Redirect

LAB 1
Easy Training
Basic URL Parameter Redirect
LAB 2
Easy Real World
Open Redirect via URL Path Manipulation (Omise — HackerOne #504751)
LAB 3
Easy Real World
Open Redirect via URL Parameter (?url=) — Semrush · HackerOne #311330
LAB 4
Medium Real World
Open Redirect via \@ Validator Bypass (Tumblr — HackerOne #2812583)

Authentication Bypass

LAB 1
Medium Real World
Admin Auth Bypass via Response Manipulation (UPS — HackerOne #1490470)
LAB 2
Medium Training
OTP Verification Bypass via Response Manipulation
LAB 3
Medium Training
Phone OTP Bypass via Response Manipulation

SQL Injection (SQLI)

LAB 1
Easy Training
SQL Injection - Login Bypass
LAB 2
Easy Training
INSERT SQL Injection - Comment System
LAB 3
Medium Training
CRUD SQL Injection - Book Management
LAB 4
Medium Training
Time-based Blind SQL Injection
LAB 5
Medium Training
Integer-based SQL Injection
LAB 6
Hard Training
User-Agent Header Blind SQL Injection
LAB 7
Hard Training
Referer Header Blind SQL Injection
LAB 8
Hard Training
X-Forwarded-For Header Blind SQL Injection
LAB 9
Hard Real World
Time-based Blind SQLi via item_id + WAF Bypass (Zomato — #403616)
LAB 10
Hard Real World
Time-based Blind SQLi via User-Agent + XOR Arithmetic (labs.data.gov — #297478)
LAB 11
Hard Real World
UNION-based SQLi via URL siteId — Results Reflected in Page (IntenseDebate — #1046084)
LAB 12
Hard Real World
Blind SQLi via phone_number Login Field + XOR Payload (MTN FutExpert — #1069531)
LAB 13
Hard Real World
ORDER BY SQLi via WordPress Shortcode Parameter (drivegrab.com / Grab — #273946)
LAB 14
Hard Real World
Boolean-blind SQLi via REST API Path Segment (inDrive — #2051931)
LAB 15
Hard Real World
Time-Based Blind SQLi via JSONP Analytics Tracker (Rocket.Chat / AgileCRM — #433792)
LAB 16
Hard Real World
Boolean-Blind SQLi in PUT API Path Segment (Hyperpure / Zomato — #1044716)
LAB 17
Hard Real World
UNION-Based SQLi in Bearer-Auth Admin Search API (Acronis — #923020)
LAB 18
Hard Real World
UNION SQLi in WooCommerce Coupon Usage Report (Automattic — #3198980)
LAB 19
Hard Real World
Time-Based Blind SQLi + XOR WAF Bypass in WordPress Login (Acronis — #1224660)
LAB 20
Hard Real World
UNION SQLi via Integer entryid in DoD Form Confirmation AJAX Endpoint (U.S. DoD — #3127198)
LAB 21
Hard Real World
Blind SQLi via CASE/**/ WHEN + Comment-Space WAF Bypass in Zomato Banner API (Zomato — #838855)
LAB 22
Medium Real World
Time-Based Blind SQLi via GET Parameter in IntenseDebate Comment Settings (Automattic — #1042746)
LAB 23
Hard Real World
String SQLi via Nested Subquery WAF Bypass in DoD Publications (U.S. DoD — #491191)
LAB 24
Medium Real World
Time-Based Blind SQLi via XOR in DoD Publications Search (U.S. DoD — #2312334)

Cross-Site Request Forgery (CSRF)

LAB 1
Easy Real World
Login CSRF — Token Never Validated (HackerOne — HackerOne #834366)
LAB 2
Medium Real World
Login CSRF — No Token on API Login Endpoint — Unikrn (#339352)
LAB 3
Hard Real World
CSRF via GraphQL GET Mutation — Token Bypass on /api/graphql — GitLab (#1122408)
LAB 4
Medium Real World
CSRF → Reflected XSS via Unsanitized Wishlist Comment — Teavana/Starbucks (#177508)
LAB 5
Hard Real World
CSRF Account Takeover via Profile Edit — U.S. Dept of Defense / NPS (#2712857)
LAB 6
Medium Real World
CSRF → Attribute-Context XSS via Training Answer Field — DoD/JKO (#1118521)
LAB 7
Easy Training
CSRF Password Change — Unprotected Account Settings
LAB 8
Easy Training
CSRF Email Hijack — Silent Account Takeover
LAB 9
Easy Training
CSRF Account Wipe — Irreversible Data Deletion
LAB 11
Easy Training
CSRF 2FA Bypass — Silent Security Downgrade

Server-Side Request Forgery (SSRF)

LAB 1
Easy Training
Source Code Viewer - Basic cURL SSRF
LAB 2
Easy Training
Screenshot Tool - URL to Image
LAB 3
Medium Training
Port-based Timing Attack
LAB 4
Medium Training
Domain Restriction Bypass with Redirects
LAB 5
Medium Training
Website Checker with IP Blacklist
LAB 6
Medium Training
AWS Metadata Filter Bypass
LAB 7
Easy Training
PDF Generator - URL to PDF

Insecure Direct Object Reference (IDOR)

LAB 1
Easy Training
SwiftCart — Insecure Order Invoice Disclosure
LAB 2
Medium Real World HackerOne #150095
Uber Driver Portal — Trip & Earnings Disclosure

Server-Side Template Injection (SSTI)

LAB 1
Easy Training
Template Engine Code Injection
LAB 2
Medium Real World
SSTI via First Name in Registration Welcome Email (Glovo — #1104349)
LAB 3
Medium Real World
SSTI via Profile Name in Account Update Email (Uber — #125980)
LAB 4
Hard Real World
SSTI via Profile Fields in Invitation Email — Smarty RCE (Unikrn — #164224)

Local File Inclusion (LFI)

LAB 1
Easy Training
Path Traversal - Basic
LAB 2
Medium Training
CMS Local File Inclusion
LAB 3
Hard Training
File Upload with LFI Vulnerability
LAB 4
Easy Training
Image Gallery File Inclusion
LAB 5
Hard Real World
Unauthenticated LFI via ! Path Separator in Jolokia JMX Bridge (U.S. DoD — #2778380)
LAB 6
Medium Real World
Grafana LFI via Path Traversal in Plugin Static Files (MariaDB — #1419213)
LAB 7
Medium Real World
LFI via Prefix-Bypass Path Traversal in download.php (U.S. DoD — #1639364)
LAB 8
Hard Real World
LFI via Double URL Encoding in GWT CSS Servlet (U.S. DoD — #497771)

Remote File Inclusion (RFI)

LAB 1
Easy Training
Remote File Inclusion via URL
LAB 2
Medium Real World
RFI + XSS + SSRF via Unvalidated URL Proxy in GIS Portal (U.S. DoD — #192940)

Remote Code Execution (RCE)

LAB 1
Easy Training
OS Command Injection
LAB 2
Hard Real World
RCE via Prototype Pollution in Kibana SIEM ML Signal Processing — Elastic (#861744)
LAB 3
Hard Real World
RCE via ImageMagick + Ghostscript CVE-2017-8291 (Profile Image Upload) — Basecamp (#365271)
LAB 4
Hard Real World
RCE via Arbitrary File Write in RServer Report Export (ASPX Webshell) — U.S. Dept of Defense (#1072832)