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
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
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
JS Sandbox: static-eval Destructuring Parameter Bypass
This exercise covers bypassing static-eval parameter validation using destructured parameters (ObjectPattern).
< 1 Hr. medium 14 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: 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: 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 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: AST-Based Filtering
This exercise covers bypassing AST-based sandbox filtering using computed property access or Reflect.get().
-- medium 24 PRO
JS Sandbox: Regex Filter Bypass
This exercise covers bypassing regex filters with hex escapes, unicode escapes, or base64 decoding.
< 1 Hr. medium 28 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 22 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 23 PRO
JS Sandbox: Keyword Blocklist Bypass
This exercise covers bypassing indexOf/includes blocklists with bracket notation and string concatenation.
< 1 Hr. medium 32 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 59 PRO
CVE-2022-24720
This exercise covers how one can leverage image processing in ActiveStorage to gain command execution.
1-2 Hr. medium 41 PRO
CVE-2024-47081 < 1 Hr. medium 30 PRO
UUIDv1 IDOR 1-2 Hr. medium 233 PRO
API Mass-Assignment 03 < 1 Hr. medium 458 PRO
API Mass-Assignment 01 < 1 Hr. medium 518 PRO
API Mass-Assignment 02 < 1 Hr. medium 490 PRO
Mongo IDOR III < 1 Hr. medium 264 PRO
API 19
This exercise covers how to exploit an authorization issue in an API.
< 1 Hr. medium 571 PRO
API 20
This exercise covers how to exploit an authorization issue in an API.
< 1 Hr. medium 554 PRO
API 18
This exercise covers how to exploit an authorization issue in an API.
< 1 Hr. medium 584 PRO
API 17
This exercise covers how to exploit an authorization issue in an API.
< 1 Hr. medium 495 PRO
API 16
This exercise covers how to exploit an authorization issue in an API.
< 1 Hr. medium 586 PRO
ORM LEAK: SQLite
This exercise covers how to exploit an ORM leak vulnerability
1-2 Hr. medium 173 PRO
ORM LEAK 02
This exercise covers how to exploit an ORM leak vulnerability
< 1 Hr. medium 249 PRO
ORM LEAK 01
This exercise covers how to exploit a simple ORM leak.
1-2 Hr. medium 295 PRO
API 14
This exercise covers how to exploit a leaked encrypted password with an API.
< 1 Hr. medium 747 PRO
1 2 3 4 9
Showing 1–30 of 262 exercises