← Back to arena
A06 · Insecure Design · Hard

Private Program Oracle

A06 · ≈ 40 min · 0 solves

350POINTS
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

Differences in validation reveal whether a private program and member combination exists.

Required interaction

OPEN /program?slug={value}&member={value}, then GET /program?slug={value}&member={value}.

Completion proof

leave the workflow in the prohibited synthetic state described by the business rule; the successful workflow returns the current rotating flag.

Session rule

Work only inside your generated lab URL and submit the flag within 40 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 · A06 · Private Program Oracle

Objective

Differences in validation reveal whether a private program and member combination exists.

Steps

  1. Start the isolated lab and read the normal business rule returned by the vulnerable workflow.
  2. Perform the legitimate first step so the synthetic record, balance, token, or state exists.
  3. Break the workflow invariant: Compare /program?slug=missing&member=researcher with the distinct validation for atlas-zero, then GET /program?slug=atlas-zero&member=researcher.
  4. Confirm the violated rule returns the rotating instance flag.
  5. Submit that flag before the instance expires or is stopped.

Expected proof

A successful response for private-program-inference 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.