⭐Vous êtes en RETARD
404CTF{gluten-sucre-au-sucre}
Catégorie: Web Difficulté: introduction Flag: -
Challenge
Description
Vous voilà devant le stade pour voir le dernier match de votre équipe préférée, le Gorfou FC ! Malheureusement, vous êtes arrivé.e en retard et l'entrée est fermée... Mais pas de panique, il vous suffit de trouver un moyen pour quand même rentrer !
Connexion: https://en-retard.challenges.404ctf.fr
Ce challenge tourne sur un docker et n'est pas disponible
Solution
/

Le site contient un panneau interdit, en regardant le code source, on voit qu'il y a un bouton ENTRER qui nous redirige sur /donnez-moi-mon-ticket-pitie
<body>
<div class="panneau"></div>
<button class="entrer-dans-le-stade">ENTRER</button>
<div class="barre-en-fer"></div>
<textarea class="zone-texte" readonly>
</textarea>
<div class="credits-image">
<p>Image de <a href="https://fr.freepik.com/photos-gratuite/tunnel-souterrain-qui-mene-exterieur_7908947.htm#fromView=search&page=1&position=42&uuid=04bdc1b8-5842-46af-a98f-7e718c55f7da">wirestock</a> sur Freepik</p>
</div>
</body>
<script>
// ...
document.querySelector('.entrer-dans-le-stade').addEventListener('click', function() {
window.location.href = '/donnez-moi-mon-ticket-pitie';
});
//...
</script>
Il suffit soit de retirer manuellement le panneau "INTERDIS" dans l'HTML ou de visiter direction le prochain lien.

/donnez-moi-mon-ticket-pitie

Dans le JavaScript, on voit qu'en cliquant sur "valider votre billet" une vérification est faite avant de pouvoir faire un POST sur /set-cookie
et d'être redirigé sur /devant-le-match
Il faut que la variable globale validable
contiennent la valeur de l'attribut id
de l'élément .billet
<img src="/static/images/ticket.png" class="billet" id="053HJ28LOS">
<!-- DES TRUCS INUTILES -->
<script>
var bouton = document.querySelector('.valider-billet');
var billet = document.querySelector('.billet');
window.validable = [];
bouton.addEventListener('click', function() {
if (window.validable.includes(billet.id)) {
fetch('/set_cookie', {method: 'POST'}).then(function() {
window.location.href = "/devant-le-match";
});
} else {
alert('Billet non validé');
}
});
</script>
On peut ajouter à l'aide de la console l'id à la variable avant de cliquer sur le bouton. Il est également possible de faire d'autres méthodes comme faire les requêtes directement.
Dans la console, on entre :
validable.push(billet.id)
/devant-le-match

Il suffit maintenant d'aller regarder les cookies pour retrouver notre flag, dans le devtools par exemple

Dernière mise à jour
Cet article vous a-t-il été utile ?