WebCoreRuns in the API, always on

Fix the Link-Preview Fetcher: Server-Side Request Forgery

  • hard
  • 350 pts
  • First blood: still open

A chat service fetches link previews for any address it is given and follows every redirect. The internal admin console logged requests from it.

Give the fetcher an allow-list of partner hosts, compare host names in canonical form, and check every redirect against the same rules. Partner previews must keep working, including when a partner redirects to another partner or a host name arrives in capitals.

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.

  • ssrf
  • allow-list
  • network-security
  • find-and-fix

Hints

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

Hint 1
Hint 2
Hint 3
Jump to workbench
Loading the play area...