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.