Header (Intro) - FCSC2022

Principe:
Trouver et lire le code source du serveur web, puis envoyer un header HTTP avec une valeur spécifique pour obtenir le flag

Infos (cf menu latéral):
🚩 Flaggué! +20 points gagnés — 💾 Téléchargez les fichiers du challenge
FCSC{9ec57a4a72617c4812002726750749dd193d5fbbfeef54a27a9b536f00d89dfb}

Le challenge

On nous donne un site web, débrouillez-vous!

Le site web

On clique le lien du site, et on regarde la console web (F12)
On finit par trouver un lien "Source", qui donne la source du site web
app.get('/', async (req, res) => { var verif = req.header("X-FCSC-2022"); if (verif == "Can I get a flag, please?") { // …
La source (partielle, avec juste les lignes intéressantes)

La résolution

Dans les sources, on s'aperçoit que le site nous retournera une page différente si le header HTTP X-FCSC-2022 est présent et que sa valeur est Can I get a flag, please?, donc:

curl -H 'X-FCSC-2022:Can I get a flag, please?' -o result.html https://header.france-cybersecurity-challenge.fr/
La commande cURL pour envoyer le header HTTP (on peut aussi utiliser un plugin de navigateur comme Header Editor)
<strong>Here it is: FCSC{9ec57a4a72617c4812002726750749dd193d5fbbfeef54a27a9b536f00d89dfb} </strong>
La page nous donne alors le flag

Flag: FCSC{9ec57a4a72617c4812002726750749dd193d5fbbfeef54a27a9b536f00d89dfb}