SSTI avec exploit personnalisé

Server-side template injection with a custom exploit

L’application est vulnérable à une injection SSTI. L’objectif consiste à créer un exploit personnalisé permettant de supprimer le fichier /home/carlos/.ssh/id_rsa. Connexion possible avec l’utilisateur : wiener:peter.

Point injectable

Le champ nickname est vulnérable :

L’expression est évaluée.

En provoquant une erreur :

On découvre que le moteur utilisé est Twig (PHP).

Détournement de la fonctionnalité d’avatar

Il est possible de définir un avatar personnalisé via :

Ce mécanisme crée un symlink vers n’importe quel fichier lisible. Ainsi, on peut récupérer son contenu en téléchargeant l’avatar.

Exemple

Lire /etc/passwd

Le fichier est accessible lors de l’ouverture de l’image

Analyse du code User.php

Le fichier /home/carlos/User.php révèle :

La fonction gdprDelete() supprime réellement le fichier pointé par le lien symbolique. C’est exactement ce que l’on doit exploiter pour effacer id_rsa.

Exploitation : suppression de /home/carlos/.ssh/id_rsa

Créer un symlink vers la clé SSH de Carlos

Déclencher la suppression via :

Le lien symbolique pointe vers id_rsa gdprDelete() efface la cible du lien Le fichier id_rsa est supprimé.

Mis à jour

Ce contenu vous a-t-il été utile ?