Exploitation via les fonctionnalités de l’application

Using application functionality to exploit insecure deserialization

Ce laboratoire utilise un mécanisme de session basé sur la sérialisation. Une fonctionnalité de l’application invoque une méthode dangereuse à partir de données contenues dans un objet sérialisé contrôlable par l’utilisateur.

Modifier l’objet sérialisé présent dans le cookie de session afin de provoquer la suppression du fichier morale.txt situé dans le répertoire personnel de Carlos.

Comptes disponibles

  • Compte utilisateur principal : wiener:peter

  • Compte de secours : gregg:rosebud

Analyse des cookies de session

Après authentification, la session est stockée dans un cookie contenant un objet PHP sérialisé de type User.

Cookie de wiener (après décodage) :

Cookie de gregg (après décodage) :

On observe que la propriété avatar_link est utilisée par l’application lors de certaines actions.

Fonctionnalité exploitable

Lorsque l’utilisateur clique sur Delete account, une requête est envoyée vers :

Cette fonctionnalité traite la valeur de avatar_link et déclenche une opération sur le fichier pointé par ce champ, sans validation suffisante.

Exploitation

L’idée consiste à remplacer la valeur de avatar_link par un chemin arbitraire menant au fichier à supprimer.

Objet sérialisé modifié :

Après l’envoi de la requête vers /my-account/delete, le serveur répond :

Mis à jour