Pocket CTF Reference · Device home

Behind the Button

A visitor check relies on a form value that is not visibly editable. Inspect what the browser actually submits and test whether invisibility creates trust.

Objective

Before you begin

Open /challenge/easy/hidden with the Elements or page-source viewer available.

Concepts

An HTML hidden input affects presentation, not authority. Its name and value are delivered to the browser and can be changed before submission.

Browser-controlled pages, cookies, and request fields cross a server trust boundary. The server validates input and applies its own authentication and authorization policy.

The browser can change local markup, storage, cookies, and request fields. Hiding a control or trusting a client-supplied role does not enforce permission. The server validates input, establishes identity, checks authorization, and limits writable fields before changing trusted state. A signed client value still needs correct verification, scope, and freshness checks.

Suggested tools

Tool practice

Rehearse the worked tool exercise before using challenge data.

Use the local hidden-input exercise first. On the challenge, submit the ordinary form while Network is open. In Payload/Request, identify the field name and value. Return to the form, edit its value in Elements/Inspector, submit again, and compare both request bodies.

Investigation

Observe

Find the hidden input and record its field name and ordinary value. Click Check clearance without changing the form, then note the higher clearance named by the rejected response. Return to the challenge page before editing the input.

Form a hypothesis

Will the API authorize a request solely from a modified hidden value?

Test carefully

Change only that value and submit the form once.

Progressive hints

Hint 1

Inspect the form HTML, not only visible controls.

Hint 2

Find the clearance input.

Hint 3

Submit the unchanged form first. The rejected response names the higher clearance. Return to the form, change the hidden value to that clearance, and submit again.

Troubleshooting and reset

If editing the live DOM is awkward, submit an equivalent form request through an HTTP client. The ordinary form value restores the initial response.