Secure Legion Labs
Advanced Lab
This challenge reads payloads from the query string or hash fragment, applies weak sanitization, and renders the result back into the DOM. The goal is to understand the browser-side data flow and land execution.
?input=payload#payloadThe page strips broad script references, removes common event handler names, and replaces alert. It still leaves realistic bypass routes for a learner who understands the sink.
replace(/script/gi, "")
replace(/onerror/gi, "")
replace(/onload/gi, "")
replace(/alert/gi, "blocked")Pick a source, launch a payload, and the console will sync it into the current page without forcing a full reload.
?input=The value is rendered through innerHTML and mirrored through a debug line to simulate multiple client-side render paths.
Status: waiting for user input.
The flag appears here after the lab detects a successful execution path.
Submit the exact unlocked flag to finish this room.
Flag is locked until you trigger the challenge condition.
The page collects attacker-controlled data from the query string or hash fragment.
Basic string replacement removes only a few obvious patterns.
The cleaned value is still treated as HTML and rendered by the browser.