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.