Solution de valdoin pour Header

intro web NodeJS

29 avril 2025

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é

Network Dev Tool

en faisant clic droit puis “Edit and Resend”

Edit Request

on obtient finalement le flag.

GET Response