Skip to content

Instantly share code, notes, and snippets.

@valdoin
Created April 29, 2025 12:15
Show Gist options
  • Save valdoin/2b529ce44018fc831ac3f15fd7831e0a to your computer and use it in GitHub Desktop.
Save valdoin/2b529ce44018fc831ac3f15fd7831e0a to your computer and use it in GitHub Desktop.
Hackropole - Header

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment