6.5: XSS : exploitation session
Cet exercice est très compliqué.
Faîtes le uniquement si vous êtes en avance.
Cookies et session
La connexion à un site web fonctionne grâce à une information appelée "cookie".
Le cookie est gardé sur le navigateur et est envoyé au serveur à chaque page visitée.
En PHP, quand on utilise $_SESSION (session_start()) un cookie est crée sur le navigateur.
Ce cookie de session permet au serveur d'identifier le navigateur / utilisateur.
Ce cookie est donc critique pour la sécurité.
Si un pirate connaissait le cookie de "gerant", il pourrait se faire passer pour "gerant".
Cookies en JavaScript
En JavaScript on accède aux cookies avec la variable « document.cookie »
Ouvrez la console Firebug (ou "inspect").
Tapez "document.cookie" suivi d'entrée.
Vous devriez voir quelque-chose du type "PHPSESSID=313amlhp6kriop62o368m5jpn0"
Demandez à votre voisin de faire la même chose, sur son navigateur, mais sur le compte de "gerant".
Ensuite, dans la console de votre navigateur, tapez ce qui suit, en remplaçant la valeur par celle de "gerant".
document.cookie="PHPSESSID=4caamlhp4kriop62o368m5jpn0"
En cas de difficulté: utiliser les outils de dev Firefox, dans la console, cliquez sur l'onglet "Stockage", puis dans le cookie correspondant, copiez la valeur.
Vérifiez que vous êtes bien maintenant dans la session de "gerant" !!
Déconnectez-vous ... c'est de la triche :-)
On va essayer d'utiliser la faille XSS.
Transmettre le cookies
C'est ici que ca devient vraiment très compliqué.
Vous devez écrire dans le message du JavaScript qui réussisse à vous transmettre le cookie de "gerant".
La solution la plus simple est d'insérer une image dont le lien src pointe vers un serveur web à vous.
Dans ce lien src vous pouvez ajouter le cookie.
Ensuite, en regardant les logs de votre serveur vous verrez le lien (avec le cookie).
Essayez ... (bon courage!)