Exercises

Exercise Avg. Time Difficulty Solved by Tier
GHSA-69X8-A
This challenge covers the review of a vulnerability in a python codebase and its patch
hard 7 PRO
GHSA-69X8-B
This challenge covers the review of a vulnerability in a python codebase and its patch
hard 7 PRO
PHP eval() Class Hoisting RCE
This challenge covers an unauthenticated remote code execution reproducing MantisBT CVE-2026-49273: a value is validated with eval('return; ...'), but PHP hoists class declarations past the return; at compile time, letting an attacker pre-declare the class the app then autoloads and instantiates.
< 1 Hr. medium 11 PRO
Fastjson @JSONType RCE on default embedded Tomcat (/proc/self/fd)
This challenge is the second in the fastjson @JSONType series. Unlike lab I it runs on a stock Spring Boot app on the latest JDK that parses on the Tomcat request thread with no classloader wiring. A direct jar:http payload only yields SSRF there; remote code execution comes from the two-request /proc/self/fd variant, whose file: class name has no '//', so Tomcat's own webapp classloader defines it on the request thread.
2-4 Hr. hard 4 PRO
Fastjson @JSONType jar: URL RCE
This challenge covers a remote code execution in fastjson 1.2.83 with autoType disabled, by abusing the @JSONType trust probe in ParserConfig.checkAutoType together with a jar:http:// class name loaded through Spring Boot's LaunchedURLClassLoader on JDK 8.
< 1 Hr. hard 4 PRO
wp2shell: CVE-2026-63030 & CVE-2026-60137 CVE-2026-63030 CVE-2026-60137 WordPress Remote Code Execution
This challenge covers gaining a shell on WordPress by chaining CVE-2026-63030 and CVE-2026-60137.
2-4 Hr. medium 10 PRO
H2 INIT Parameter RCE II < 1 Hr. hard 11 PRO
CVE-2026-XX957
This challenge covers the review of a CVE in a typescript codebase and its patch
< 1 Hr. hard 30 PRO
CVE-2026-XX464
This challenge covers the review of a CVE in a typescript codebase and its patch
hard 30 PRO
CVE-2026-XX792
This challenge covers the review of a CVE in a typescript codebase and its patch
hard 30 PRO
H2 INIT Parameter RCE < 1 Hr. hard 14 PRO
SAML: Transform RCE
This exercise covers the exploitation of an RCE in SAML by leveraging a vulnerable version of xmlsec
< 1 Hr. medium 11 PRO
Web Fundamentals: WebDAV Introduction hard 71 PRO
Web Fundamentals: Proxy hard 72 PRO
Web Fundamentals: Browser Storage hard 76 PRO
Web Fundamentals: WebSockets hard 88 PRO
Web Fundamentals: GraphQL hard 88 PRO
Web Fundamentals: Same-Origin Policy Introduction hard 84 PRO
Web Fundamentals: API hard 95 PRO
Web Fundamentals: CORS Introduction hard 85 PRO
Web Fundamentals: Databases hard 101 PRO
Web Fundamentals: Sessions hard 95 PRO
Web Fundamentals: Client-Side Code hard 112 PRO
Web Fundamentals: Server-Side Code hard 109 PRO
JS Sandbox: static-eval Function Property Blocked
This exercise covers bypassing post-2.0 static-eval that blocks member access on functions, using anonymous function bodies.
< 1 Hr. medium 22 PRO
JS Sandbox: vm.runInNewContext Null Prototype
This exercise covers escaping vm.runInNewContext when the context is created with Object.create(null) so this.constructor is undefined.
< 1 Hr. medium 22 PRO
JS Sandbox: vm.runInNewContext Restricted Globals
This exercise covers escaping vm.runInNewContext when specific safe objects are provided but frozen, using Error objects or Promise callbacks.
< 1 Hr. medium 21 PRO
JS Sandbox: static-eval Direct Constructor Access
This exercise covers exploiting the original unpatched static-eval with unrestricted property access on functions.
< 1 Hr. medium 23 PRO
JS Sandbox: static-eval Destructuring Parameter Bypass
This exercise covers bypassing static-eval parameter validation using destructured parameters (ObjectPattern).
< 1 Hr. medium 15 PRO
CVE-2026-XX242
This challenge covers the review of a CVE in a python codebase and its patch
< 1 Hr. hard 50 PRO
1 2 3 4 26
Showing 1–30 of 758 exercises