Solution de yagamii#2077 pour Header

intro web NodeJS

29 décembre 2023

Le code source fourni nous apprend que lorsque l’on visite la page d’accueil GET /, le serveur vérifie s’il existe dans la requête envoyée le Header X-FCSC-2022 avec sa valeur Can I get a flag, please?, si c’est le cas il ouvre le fichier flag.txt et nous renvoie le flag.

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();
    }

F12 pour ouvrir la console du navigateur et écrire un peu de JS :p. Le but est d’envoyer ce Header vers la bonne route par une requête GET et de récupérer ensuite la réponse du serveur.

await fetch("http://localhost:8000/", { 
  headers: {"X-FCSC-2022": "Can I get a flag, please?"}
} ).then( (data) => data.text() ).then( console.log )

REQ-RES

On peut aussi utiliser cURL:

curl  -X GET 'http://localhost:8000/' --header 'X-FCSC-2022: Can I get a flag, please?'