Exercises

Exercise Avg. Time Difficulty Solved by Tier
Java Serialize 11
This challenge covers building the Groovy1 gadget chain to reach remote code execution using only existing library classes.
medium 12 PRO
Java Serialize 12
This challenge covers wrapping a payload in a SignedObject to bypass signature-based validation before deserialization.
medium 13 PRO
Output Blocklist
The model will freely tell you the key, but a server-side output filter scans every response before it reaches you. Any response containing the key is blocked. You need to get the model to reveal the key in a form the filter does not catch.
medium 23 PRO
Input Blocklist
A server-side input filter inspects every message before it reaches the AI model. Messages containing certain blocked keywords are rejected and never forwarded. If your message makes it past the filter, the model will answer freely.
medium 24 PRO
Java Serialize 08
This challenge covers exploiting Object.equals(), triggered during HashSet and HashMap deserialization, as a gadget entry point.
medium 22 PRO
Java Serialize 07
This challenge covers using readResolve() as a deserialization entry point to trigger a gadget chain after the object is restored.
medium 21 PRO
Java Serialize 09
This challenge covers exploiting toString() through a wrapper class, the technique behind BadAttributeValueExpException in Commons Collections.
medium 19 PRO
Java Serialize 10
This challenge covers chaining multiple classes together into a multi-class gadget chain, bridging single-class exploits to real-world attacks.
medium 17 PRO
CVE-2026-55415: Schema Import Injection
Gain code execution by injecting Python through a crafted JSON Schema when the generated Pydantic model is imported.
medium 22 PRO
SOAPBridge: Savon WSDL Code Injection
Gain code execution through an unsafe module_eval call during WSDL import.
medium 21 PRO
Instruction Hierarchy
The system prompt explicitly establishes an instruction hierarchy. Find a way to confuse or bypass the priority system.
medium 53 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 17 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 21 PRO
SAML: Transform RCE
This exercise covers the exploitation of an RCE in SAML by leveraging a vulnerable version of xmlsec
< 1 Hr. medium 19 PRO
JS Sandbox: static-eval Destructuring Parameter Bypass
This exercise covers bypassing static-eval parameter validation using destructured parameters (ObjectPattern).
< 1 Hr. medium 28 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 34 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 34 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 35 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 36 PRO
JS Sandbox: vm.runInNewContext Empty Context
This exercise covers escaping Node.js vm.runInNewContext with an empty sandbox object via the constructor chain.
medium 37 PRO
JS Sandbox: Type Confusion Bypass
This exercise covers bypassing string sanitization by sending an object when the sanitizer expects a string.
< 1 Hr. medium 39 PRO
JS Sandbox: AST-Based Filtering
This exercise covers bypassing AST-based sandbox filtering using computed property access or Reflect.get().
medium 40 PRO
JS Sandbox: Regex Filter Bypass
This exercise covers bypassing regex filters with hex escapes, unicode escapes, or base64 decoding.
< 1 Hr. medium 43 PRO
JS Sandbox: Keyword Blocklist Bypass
This exercise covers bypassing indexOf/includes blocklists with bracket notation and string concatenation.
< 1 Hr. medium 48 PRO
Latex: --shell-escape
This exercise covers how one can leverage latex when pdflatex is used with the --shell-escape option to gain command execution.
< 1 Hr. medium 76 PRO
CVE-2022-24720
This exercise covers how one can leverage image processing in ActiveStorage to gain command execution.
1-2 Hr. medium 57 PRO
CVE-2024-47081 < 1 Hr. medium 34 PRO
UUIDv1 IDOR < 1 Hr. medium 265 PRO
API Mass-Assignment 03 < 1 Hr. medium 514 PRO
API Mass-Assignment 02 < 1 Hr. medium 546 PRO
‹ 1 2 3 4 … 10 ›
Showing 1–30 of 273 exercises