Secure Legion Labs
Misconfiguration Lab
This room simulates a production app with weak response headers. Your goal is to review what is missing, apply a hardened configuration, and reduce the browser-side attack surface before a client launch.
The application can currently be embedded inside third-party frames.
Browsers are not forced to stay on HTTPS after the first visit.
No restrictive CSP is present, so injected scripts and loose asset loading are easier to abuse.
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: default-src 'self'; frame-ancestors 'none'; object-src 'none'; base-uri 'self'
Referrer-Policy: strict-origin-when-cross-origin
The room checks whether your chosen values actually match a sensible hardened baseline, not just whether a header exists.
Toggle the required protections on, then generate the secure response. Some controls also need the correct production-safe value to count as fixed.
The preview below shows the effective response after your selections are applied. Missing or weak controls stay visible until the baseline is fully secured.
Status: the app still reflects the insecure default profile.
Once the response is fully hardened, the flag will unlock here.
Submit the flag after you harden the configuration properly.
Flag is locked until the misconfiguration baseline is fully fixed.
Review what protections are absent or weak in the current response.
Turn on the necessary controls and choose production-safe values rather than symbolic fixes.
Once every required header is present with the correct value, the room unlocks the flag.