02.05 / 70 min

Run a safe state-changing test

Test PATCH authorization with dry-run, explicit confirmation, before/after evidence, strict limits, and rollback.

By the endStart in dry-runCapture before and afterVerify cleanup
Controlled exercise

Use only the Academy Lab on 127.0.0.1:5177. Do not copy these tests to a public system without explicit written authorization.

01

Prepare the request without transmitting

Set PATCH on the insecure resource, select User A, choose Horizontal IDOR/BOLA, and keep Dry-run enabled. Use one request and one object candidate.

PATCH /api/resources-insecure/resource-b
{"note":"Academy authorization proof"}
Expected result

The preview shows the exact request but the resource remains unchanged.

02

Configure evidence and cleanup

Set the before template to GET the same object. Configure cleanup as POST /api/rollback using the rollback_token returned by the PATCH. Keep the request cap below five.

03

Confirm and execute

Enable bounded write, acknowledge the local lab target, and choose Execute + verify + rollback. Never reuse this confirmation on a real target without written authorization and a recovery plan.

Expected result

Before shows the original note, after shows the changed note, and cleanup restores the original note.

04

Save rollback proof

Attach sanitized before, after, and restored response hashes to the finding. Mark the test inconclusive if cleanup cannot be verified.

MASTERY CHECKPOINT

Prove it before moving on.

The final GET shows the original User B note and the finding contains a verified rollback result.