Exercises

Exercise Avg. Time Difficulty Solved by Tier
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 9 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 9 PRO
H2 INIT Parameter RCE II < 1 Hr. hard 10 PRO
CVE-2026-XX792
This challenge covers the review of a CVE in a typescript codebase and its patch
-- hard 28 PRO
CVE-2026-XX464
This challenge covers the review of a CVE in a typescript codebase and its patch
-- hard 28 PRO
CVE-2026-XX957
This challenge covers the review of a CVE in a typescript codebase and its patch
< 1 Hr. hard 28 PRO
H2 INIT Parameter RCE < 1 Hr. hard 13 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: Proxy -- hard 70 PRO
Web Fundamentals: WebDAV Introduction -- hard 70 PRO
Web Fundamentals: Browser Storage -- hard 73 PRO
Web Fundamentals: WebSockets -- hard 85 PRO
Web Fundamentals: GraphQL -- hard 85 PRO
Web Fundamentals: API -- hard 92 PRO
Web Fundamentals: CORS Introduction -- hard 81 PRO
Web Fundamentals: Same-Origin Policy Introduction -- hard 82 PRO
Web Fundamentals: Databases -- hard 99 PRO
Web Fundamentals: Sessions -- hard 92 PRO
Web Fundamentals: Client-Side Code -- hard 110 PRO
Web Fundamentals: Server-Side Code -- hard 108 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 21 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 21 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 20 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 22 PRO
JS Sandbox: static-eval Destructuring Parameter Bypass
This exercise covers bypassing static-eval parameter validation using destructured parameters (ObjectPattern).
< 1 Hr. medium 14 PRO
CVE-2026-XX242
This challenge covers the review of a CVE in a python codebase and its patch
< 1 Hr. hard 49 PRO
CVE-2026-XX738
This challenge covers the review of a CVE in a python codebase and its patch
< 1 Hr. hard 47 PRO
Web Fundamentals: Introduction < 1 Hr. hard 175 PRO
1 2 3 4 26
Showing 1–30 of 756 exercises