← Back to arena
Web · Easy

Search Reflection

A05 · ≈ 20 min · 0 solves

100POINTS
MISSIONDiscover the weakness independently

Explore the application as a real target: map the exposed functionality, inspect requests and responses, build a working exploit, and recover the rotating flag. If you get stuck, the verified official solution is available below as an optional spoiler.

Rules of engagement

Stay inside the generated lab URL. Use only the synthetic accounts and data in this instance. The main SecOne4all site and external systems are out of scope.

Challenge brief

FLAG REQUIREMENTS

What counts as a valid solve

Goal

Execute script through an unescaped search term in a results page.

Required interaction

GET /search?q={value}, then POST `document.cookie` to /browser-review, then GET /browser-result.

Completion proof

cause the isolated review browser to execute input originating from the search response; directly calling the review or result endpoints without that browser event does not count; the successful workflow returns the current rotating flag.

Session rule

Work only inside your generated lab URL and submit the flag within 20 minutes.

VERIFIED WALKTHROUGH

Official solution

Contains the complete exploitation path. Open it only when you want the spoiler.

Reveal official solutionStep-by-step · verified against the live lab

Official solution · A05 · Search Reflection

Objective

Execute script through an unescaped search term in a results page.

Steps

  1. Start the isolated lab and open its vulnerable feature from the landing page.
  2. Confirm the normal request or input works before changing the relevant parser boundary.
  3. Exploit the real vulnerable flow: Submit a /search?q= URL containing JavaScript that POSTs document.cookie to /browser-collect, then POST that URL as JSON field url to /browser-review and read /browser-result.
  4. Copy the rotating flag returned by the exploited data flow or rendered browser sink.
  5. Submit the exact flag before stopping or expiring the instance.

Expected proof

A successful response for reflected-xss returns the instance-specific rotating flag. The flag is valid only for the current player and running instance.

Safety boundary

Use only the generated lab URL. No request to the main site, another user, or an external service is part of this solution.