Hintru Tip ENES ← All labs

Bugforge MesaNet

EN hard CTF challenge Web Cache PoisoningXSSHeader InjectionStored XSSCSRFBot ExploitationExfiltration
Original

MesaNet is a Black Mesa Transit rail broadcast panel running on Bugforge's lab infrastructure. The application caches API responses and reflects a custom header value directly into HTML, creating a chained attack path: poison the cache with a script injected via a custom header, then trick a bot into viewing the poisoned page — causing it to exfiltrate its private notes (and the flag) to an attacker-controlled webhook.

0/7
solved
Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 7
enumeration

Step 1 · Map the Rail API surface

Objective: Discover all available endpoints under the /api/rail/ path by fuzzing the application.

Context: You are authenticated to the MesaNet Access Panel (Clearance L3). A 'Rail Broadcasts' tab is visible in the dashboard. Intercept the traffic in Burp Suite and take note of the session cookie (connect.sid) — you will need it for authenticated fuzzing.

Progressive hints

Only reveal the ones you need. Claude tracks how many you used to calibrate the feedback.

Hint 1 — directional nudge

The Rail Broadcasts page makes API calls. Try to find what other endpoints exist at the same base path.

Hint 2 — technique / vuln class

Use a directory/endpoint fuzzing tool against the /api/rail/ path, passing your authenticated session cookie as a header so the server treats requests as logged in.

Hint 3 — near solution

Run ffuf against https://<lab-host>/api/rail/FUZZ using the common.txt wordlist, supplying the Cookie, Referer, and browser-like headers observed in Burp. Look for responses with status 200.

Ask the tutor

Chat with a spoiler-safe tutor for this step. It uses only this lab spec and gives the smallest useful nudge first.

Tell the tutor what you tried, where you got stuck, or paste the response/error you are seeing.

Your attempt

Spotted something to improve?

Polish the wording, sharpen a hint, add missing context, fix a payload — your version stays separate from the original and other learners can choose it.

⚠ Report this lab

Enjoying Hintru? Buy me a coffee ☕ ☕