Post

Filesystem Intruder

đť„ž Introduction

Intro

Ce challenge consiste à compromettre le serveur avec le compte administrateur afin de récupérer le flag.

đť„ž Solution

Accueil

La page d’accueil propose une fonctionnalité supplémentaire lorsque nous sommes connectés en tant qu’administrateur :

  • Ajouter un utilisateur

đť„žđť„ž Ajouter un utilisateur

Nous avons la possibilité d’ajouter un utilisateur dans l’application.

add

En ajoutant l’utilisateur fxoverflow, un message de confirmation s’affiche, validant la création de l’utilisateur.

add2

Nous remarquons que le champ “username”, que nous contrôlons, est reflété dans la réponse du serveur. Si ce champ n’est pas correctement filtré, cela pourrait nous permettre d’exploiter une vulnérabilité pour compromettre le serveur.
Ici, nous tentons une injection de type SSTI (Server-Side Template Injection).

ssti
ssti2

Le serveur nous renvoie 49, confirmant ainsi la vulnérabilité SSTI.

Payload

Pour exploiter cette faille, nous utilisons un payload qui nous permet d’exécuter des commandes système et de compromettre le serveur afin de rechercher le flag.

1
{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}

Ce payload nous donne la capacité d’exécuter des commandes système.

Burp

Nous procédons alors à une énumération des fichiers sur le serveur pour repérer des éléments intéressants.

Burp2 Burp3

Nous trouvons un fichier intéressant .flags..

En lisant le contenu de ce fichier, nous obtenons le flag.

flag

đť„ž FLAG : PPC2024{w8zpU47VNKx2n8} đť„ž

This post is licensed under CC BY 4.0 by the author.