Web Security Academy

SSRF - Lab : Basic SSRF against the local server


Objectif :

  • Accéder à l'interface administrateur pour supprimer l'utilisateur dont le nom est Carlos.

  • Dans l'énoncé, il est précisé que cette interface est située dans même serveur que l'application.

Solution :

On lance le lab et on se trouve dans un site de commerce :

On accède aux détails d'un produit et en bas de la page, on remarque la possibilité de vérifier son stock dans plusieurs villes :

Lorsqu'on clique sur "Check stock", une requête POST est envoyée au serveur avec comme donnée une URL vers une API ( permettant de nous renvoyer la quantité du stock selon le produit et la ville) :

On décode la donnée pour correctement lire le contenu : stockApi=http://stock.weliketoshop.net:8080/product/stock/check?productId=1&storeId=1.

À présent, on va essayer de modifier cette URL pour dire au serveur d'accéder à lui-même ( avec localhost ) : stockApi=http://localhost/admin.

On soumet la requête et le panel administrateur apparaît à la place de la quantité du stock :

On clique sur "delete" pour supprimer l'utilisateur Carlos et on remarque que c'est une requête GET qui est envoyée :

Il suffit donc d'inscrire l'URL suivante dans la donnée de la requête POST précédente : http://localhost/admin/delete?username=carlos.

On lance la requête et aucune erreur ne surgit. On vérifie que le compte de Carlos est supprimé en revenant sur l'interface administrateur :

Effectivement, il a été supprimé. le lab est désormais validé !