Application Security
for Developers
Run the exploit in a real browser against a deliberately vulnerable app, then write the fix that stops it.
22 hands-on exercises across the OWASP Top 10 for web applications. Free to play, no sign-up required.
Covers the languages your team ships in
The vulnerable code and its fix are shown in the language your developers work in every day.
- JavaScript
- TypeScript
- Java
- C#
- Python
- Scala
- PHP
- Ruby
- Go
- Kotlin
OWASP Top 10 for Web Applications
Clickjacking
Steal a click on a bank approval button.
- OWASPA02:2025
- CWE-1021
- CIS 16
- NIST CSFPR.PS
Command Injection
Chain a second command onto a server-side tool.
- OWASPA05:2025
- CWE-78
- CIS 16
- NIST CSFPR.PS
Components with Known Vulnerabilities
Get code execution through an outdated library.
- OWASPA03:2025
- CWE-1104
- CIS 16
- NIST CSFPR.PS
Cross-Site Request Forgery
Move money from a page the victim never trusted.
- OWASPA01:2025
- CWE-352
- CIS 16
- NIST CSFPR.PS
Directory Traversal
Read system files through a download link.
- OWASPA01:2025
- CWE-22
- CIS 16
- NIST CSFPR.PS
DOM XSS
Trigger XSS the server never sees.
- OWASPA05:2025
- CWE-79
- CIS 16
- NIST CSFPR.PS
Forced Browsing
Pull an employee PII export from an unlinked route.
- OWASPA01:2025
- CWE-425
- CIS 16
- NIST CSFPR.PS
Horizontal Privilege Escalation
Change one digit and read another customer.
- OWASPA01:2025
- CWE-639
- CIS 16
- NIST CSFPR.PS
Host Header Injection
Redirect a password-reset email to a lookalike domain.
- OWASPA02:2025
- CWE-644
- CIS 16
- NIST CSFPR.PS
Insecure URL Redirect
Hide a phishing page behind a real login.
- OWASPA01:2025
- CWE-601
- CIS 16
- NIST CSFPR.PS
Leftover Debug Code
Pull production secrets from a forgotten debug route.
- OWASPA02:2025
- CWE-489
- CIS 16
- NIST CSFPR.PS
PII in URL
Lift personal data straight out of a link.
- OWASPA04:2025
- CWE-598
- CIS 16
- NIST CSFPR.PS
Reflected XSS
Craft a malicious URL that runs the moment it opens.
- OWASPA05:2025
- CWE-79
- CIS 16
- NIST CSFPR.PS
Server-Side Request Forgery
Make the server fetch its own cloud credentials.
- OWASPA01:2025
- CWE-918
- CIS 16
- NIST CSFPR.PS
Session Fixation
Plant a session id and inherit the victim login.
- OWASPA07:2025
- CWE-384
- ATT&CKT1539
- CIS 16
- NIST CSFPR.PS
SQL Injection
Dump a database through one unguarded lookup form.
- OWASPA05:2025
- CWE-89
- CIS 16
- NIST CSFPR.PS
Stored XSS
Plant a script in a comment and watch it fire.
- OWASPA05:2025
- CWE-79
- CIS 16
- NIST CSFPR.PS
Token Exposure in URL
Replay a session token harvested from a referrer log.
- OWASPA07:2025
- CWE-598
- ATT&CKT1539
- CIS 16
- NIST CSFPR.PS
User Enumeration
Harvest a verified customer list from a login form.
- OWASPA07:2025
- CWE-204
- CIS 16
- NIST CSFPR.PS
Vertical Privilege Escalation
Forge a role claim and become an administrator.
- OWASPA01:2025
- CWE-269
- CIS 16
- NIST CSFPR.PS
Weak Randomness
Predict a password-reset token and take the account.
- OWASPA04:2025
- CWE-330
- CIS 16
- NIST CSFPR.PS
XXE Injection
Read the password file through an XML upload.
- OWASPA02:2025
- CWE-611
- CIS 16
- NIST CSFPR.PS
The Developer Track
Application security split by attack surface. Free, hands-on, no sign-up.
-
API Security
10 exercisesBroken Object Level Authorization · Mass Assignment · Excessive Data Exposure
-
Git & Repository Security
8 exercisesSecrets in Git History · Exposed .git Directory · Malicious Pull Requests
-
Cloud Security
17 exercisesPublic Storage Buckets · Over-Permissive IAM · Secrets in Image Layers
Frequently asked questions
What is application security training?
Application security training teaches developers to find and fix the vulnerability classes that attackers actually exploit, such as injection, broken access control, and cross-site scripting. It targets the people writing the code, not the general workforce.
Every exercise here puts you in a simulated workstation with a real browser and a deliberately vulnerable web app. You run the attack yourself, then apply the secure pattern that closes it.
Which OWASP Top 10 risks do these exercises cover?
The course spans injection (SQL and command), broken access control (horizontal and vertical privilege escalation, forced browsing), cryptographic and authentication failures (weak randomness, session fixation), and security misconfiguration (leftover debug code, vulnerable dependencies).
Cross-site scripting is covered in all three forms: stored, reflected, and DOM-based. Each exercise pairs the exploit with the remediation.
Do I need to know how to code to complete these?
Basic familiarity with web development helps, since the fixes are shown as code changes such as swapping a concatenated query for a parameterized one.
You do not need to write code from scratch. The exercises walk you through reading the vulnerable handler, spotting the bug, and reviewing the corrected version.
Does this satisfy PCI DSS secure-coding training requirements?
PCI DSS Requirement 6.2 covers secure software development, and 12.6 covers security awareness for staff. Developers who write code touching cardholder data fall under both.
These exercises provide the hands-on secure-coding component, and completion records export to your LMS through SCORM or LTI for audit evidence.
See RansomLeak in Action
Try the free exercises or book a demo to see analytics, SCORM export, SSO, and custom content in your environment.