Table des matières
Analyse du code source
En cliquant sur “Source” dans la navbar du site, on accède au code source suivant :
app.get('/', async (req, res) => {
var verif = req.header("X-FCSC-2022");
if (verif == "Can I get a flag, please?") {
var flag = fs.readFileSync("flag.txt");
res.status(200);
res.render("pages/index", {
type: "success",
msg: "Here it is: " + flag,
});
return res.end();
} else {
res.status(200);
res.render("pages/index", {
type: "warning",
msg: "No flag for you. Want a meme instead?",
});
return res.end();
}
});
L’endpoint de la page d’accueil est une piste intéressante : le serveur y vérifie la présence d’un header HTTP spécifique pour accorder l’accès au flag.
Solution
En utilisant les Dev Tools de notre navigateur (ici Firefox) nous pouvons intercepter la requête vers “/” dans l’onglet “Network” et la modifier pour y rajouter notre header personnalisé
en faisant clic droit puis “Edit and Resend”
on obtient finalement le flag.