uncrypt/playground

Uncrypt // security playground

Learn web & AI security by breaking things — safely.

A hands-on lab environment for students and enthusiasts. Practice real attacks — XSS, SQL injection, CSRF, SSRF, open redirects, and modern AI/ML exploits — in isolated, intentionally-vulnerable sandboxes. No setup, no hints in the labs. Capture the flag, then read the walkthrough to understand exactly why it worked.

52 labs
7 attack tracks
0 solved by you
XSS

Cross-Site Scripting

Inject and execute script in another user's browser context.

0 / 10

✓ XSS Master earned

LVL 01 Easy

Reflected — Unfiltered

A search page echoes your query straight back into the HTML body. Get the page to run your script.

Not solved Open →
LVL 02 Easy

Reflected — Attribute Context

Your input lands inside an HTML attribute value. Break out and execute script.

Not solved Open →
LVL 03 Medium

Reflected — JavaScript Context

Your input is placed inside an inline <script> string. Escape the string and run code.

Not solved Open →
LVL 04 Medium

Stored — Guestbook

Comments are saved and shown to everyone who views the page. Plant a persistent payload.

Not solved Open →
LVL 05 Medium

DOM — Hash Sink

Client-side JavaScript writes location data into the page. No server reflection involved.

Not solved Open →
LVL 06 Medium

Filter — Tag Blacklist

The app strips the <script> tag. Achieve execution without it.

Not solved Open →
LVL 07 Hard

Filter — Case & Encoding

A naive filter blocks some keywords. Slip past it.

Not solved Open →
LVL 08 Medium

URL — javascript: Scheme

Your input becomes the target of a link. Turn the link into code execution.

Not solved Open →
LVL 09 Medium

Event Handlers — img / svg

Angle brackets survive but the word "script" is blocked. Fire an event handler instead.

Not solved Open →
LVL 10 Hard

Context — JSON / CSP Bypass

Your input is reflected into a JSON blob under a permissive policy. Achieve execution.

Not solved Open →
SQLi

SQL Injection

Manipulate database queries through unsanitised input.

0 / 6

✓ SQLi Master earned

LVL 01 Easy

Authentication Bypass

A login form checks your credentials against the database. Log in as admin without the password.

Not solved Open →
LVL 02 Medium

UNION-Based Extraction

A product lookup returns rows from the database. Extract data from another table.

Not solved Open →
LVL 03 Medium

Error-Based

The application leaks database errors. Use them to pull data out.

Not solved Open →
LVL 04 Hard

Blind — Boolean

The page only tells you "found" or "not found". Ask the database yes/no questions.

Not solved Open →
LVL 05 Hard

Blind — Time-Based

No output, no errors, no difference — except how long the response takes.

Not solved Open →
LVL 06 Hard

Filter Bypass — Keywords

Basic keyword filtering tries to block injection. Get around it.

Not solved Open →
CSRF

Cross-Site Request Forgery

Force an authenticated user to perform unintended actions.

0 / 6

✓ CSRF Master earned

LVL 01 Easy

Change Email — No Token

A logged-in user can change their account email with no CSRF protection. Forge the request.

Not solved Open →
LVL 02 Easy

State Change via GET

A sensitive action is performed over a simple GET request. Trigger it from off-site.

Not solved Open →
LVL 03 Medium

Predictable Token

There is a CSRF token, but it is trivially guessable. Defeat it.

Not solved Open →
LVL 04 Medium

Weak Referer Check

The server validates the Referer header — but poorly. Bypass the check.

Not solved Open →
LVL 05 Medium

Login CSRF

Force the victim to log into an attacker-controlled account.

Not solved Open →
LVL 06 Hard

Token Not Bound to Session

Tokens are validated but not tied to the user. Reuse one.

Not solved Open →
SSRF

Server-Side Request Forgery

Make the server request internal resources on your behalf.

0 / 6

✓ SSRF Master earned

LVL 01 Easy

Basic — Internal Fetch

A URL-preview feature fetches any address you give it. Reach the internal admin panel.

Not solved Open →
LVL 02 Medium

Cloud Metadata

The fetcher runs in the cloud. Retrieve the instance credentials.

Not solved Open →
LVL 03 Hard

Blacklist Bypass

localhost and 127.0.0.1 are blocked. Reach the internal service anyway.

Not solved Open →
LVL 04 Hard

Via Open Redirect

The fetcher refuses internal hosts, but follows redirects. Chain them.

Not solved Open →
LVL 05 Hard

Blind SSRF

The response is hidden. Prove you reached the internal target.

Not solved Open →
LVL 06 Medium

Internal Port Scan

Use the fetcher to discover what is listening on the internal host.

Not solved Open →
Redirect

Open Redirect

Abuse redirect logic to send victims to attacker-controlled sites.

0 / 6

✓ Redirect Master earned

LVL 01 Easy

Basic — url Parameter

A "continue" link redirects wherever a parameter points. Send a victim off-site.

Not solved Open →
LVL 02 Medium

Host-Check Bypass

The app checks that the target starts with the trusted host. Escape it.

Not solved Open →
LVL 03 Medium

Meta / JS Redirect

The redirect happens client-side. Control the destination.

Not solved Open →
LVL 04 Hard

Path Confusion

An allowlist compares against the wrong part of the URL. Exploit the parsing gap.

Not solved Open →
LVL 05 Hard

Fragment Token Theft

A redirect carries a token in the URL fragment. Steal it via the redirect.

Not solved Open →
LVL 06 Medium

Allowlist Suffix Trick

Only *.uncrypt.io is allowed. Register a domain that slips through.

Not solved Open →
Modern

Modern Web Attacks

IDOR, injection, traversal, SSTI, JWT, uploads and logic flaws.

0 / 8

✓ Web Exploitation Master earned

LVL 01 Easy

IDOR — Broken Access

Invoices are addressed by a numeric id. Read one that is not yours.

Not solved Open →
LVL 02 Medium

Command Injection

A network tool pings a host you supply. Run your own command.

Not solved Open →
LVL 03 Medium

Path Traversal / LFI

A file viewer serves pages by name. Escape the directory.

Not solved Open →
LVL 04 Hard

Server-Side Template Injection

A greeting template renders your name. Inject template syntax.

Not solved Open →
LVL 05 Hard

JWT — alg Confusion

The session is a JWT. Forge an admin token.

Not solved Open →
LVL 06 Hard

Insecure File Upload

An avatar uploader accepts your file. Get it treated as code.

Not solved Open →
LVL 07 Hard

XXE — XML Parsing

A parser reads XML you submit. Make it read a local file.

Not solved Open →
LVL 08 Medium

Mass Assignment / Privesc

A profile-update endpoint trusts your fields. Make yourself an admin.

Not solved Open →
AI Sec

AI / ML Security

Prompt injection, jailbreaks, data leakage and model evasion.

0 / 10

✓ AI Security Master earned

LVL 01 Easy

Direct Prompt Injection

A support chatbot guards a secret. Talk it into revealing it.

Not solved Open →
LVL 02 Medium

Indirect Prompt Injection

The assistant summarises a document you provide. Hide instructions inside it.

Not solved Open →
LVL 03 Medium

System Prompt Leak

Recover the hidden system prompt the assistant was configured with.

Not solved Open →
LVL 04 Medium

Jailbreak — Guardrail Bypass

The model refuses restricted requests. Get it to comply anyway.

Not solved Open →
LVL 05 Hard

Insecure Output Handling

The app renders the model's answer as HTML. Turn a reply into XSS.

Not solved Open →
LVL 06 Hard

Prompt Injection → Tool Abuse

The agent can call tools. Trick it into calling one it should not.

Not solved Open →
LVL 07 Medium

Training-Data / PII Extraction

The model has memorised sensitive records. Extract one.

Not solved Open →
LVL 08 Hard

Excessive Agency — SSRF via AI

The agent can fetch URLs. Point it at the internal metadata service.

Not solved Open →
LVL 09 Medium

Adversarial Evasion

A toxicity classifier blocks certain messages. Get a blocked message through.

Not solved Open →
LVL 10 Hard

Data Poisoning

A spam filter learns from user feedback. Poison it into misclassifying.

Not solved Open →

About the playground

Built to be attacked — in the right places only.

Uncrypt Playground is a self-contained training ground. Each lab is an isolated, deliberately vulnerable mini-app. The platform around it — this site, your progress, the walkthroughs — is hardened and holds no real accounts or data, so there is nothing here worth stealing. Attack the labs; the playground itself stays out of scope.

01 — Capture flags

Exploit, don't guess

Every lab hides a flag like UNCRYPT{…} that only appears once you actually pull off the attack. Submit it on the lab page to mark it solved.

02 — Earn badges

Clear a whole track

Finish every level in a category and you'll be prompted for a name and a downloadable badge — XSS Master, AI Security Master, and more. Share it and tag #UncryptPlayground.

03 — Understand it

No hints in the labs

Labs never spoil the solution. When you're ready, the Walkthroughs tab explains each bug end-to-end, with the payload and how to fix it.

04 — Stay safe

Sandboxed by design

Dangerous primitives (SSRF, command execution, file reads) run against bundled mocks — never the real host or network — so nothing you do here can escape the sandbox.

Progress is stored only in this browser. Reset my progress.