The Challenge
Visiting the site returns a blank or near-blank page. The flag is nowhere in the HTML. It is in the response headers.
Approach
A HEAD request retrieves only headers without a response body. requests.head sends one. Reading r.headers['Flag'] extracts the custom header value.
Solution
|
|
Three lines. The flag is in the Flag header of the response. .head() is slightly cleaner than .get() here since we only care about headers, but both work.
What I Learned
HTTP headers are often overlooked in manual browsing but are easily missed even in source-view. Always check response headers — curl -I URL or requests.head().headers — as a first-pass step on any web challenge where the page body looks empty. Custom headers (non-standard names) are a common CTF hiding spot.