WebCoreRuns in the API, always on

Fix the Report Download: Path Traversal

  • easy
  • 100 pts
  • First blood: still open

A report download joins the requested name to its folder path. It checks the name before decoding it, and never checks where the final path points, so requests have been served files from outside the folder.

Decode and canonicalise the name first, then require the resulting path to stay inside the reports folder. Reports, including those in subfolders, must still download.

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.

  • path-traversal
  • canonicalisation
  • file-access
  • 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...