WebCoreRuns in the API, always on

Fix the Profile API: Missing Ownership Check

  • easy
  • 100 pts
  • First blood: still open

Customers of a delivery service can read each other's profiles, addresses included, by changing the record number in the request. The endpoint confirms the caller is signed in and checks nothing else.

Add the ownership rule on the server. A customer must still read their own profile, and the support account must still open a customer's record to help them.

Work through the bench tabs in order. Incident tells you what happened. Target shows the service and lets you use it as an ordinary user would. Fix is where you change the setting that caused the problem; the check table re-runs the platform's own test cases every time you save, and every row marked still works must stay green. Detect asks you to mark the log lines, or write a rule, that catch the misuse without flagging normal traffic. Explain asks a few short questions about why the fix works. When every step passes, Prove releases your flag.

Everything runs in a simulated, in-memory copy of the service built for you alone. The misuse cases are generated by the platform; you never need to write an attack, only the defence.

  • idor
  • access-control
  • authorisation
  • find-and-fix

Hints

Hints do not affect your points. Each one stays revealed.

Hint 1
Hint 2
Hint 3

Learn more

Related learning: Insecure Direct Object Reference (IDOR)

Jump to workbench
Loading the play area...