Web Security Academy

SSRF - Lab : Basic SSRF against another back-end system

Objectif :

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

  • Dans l'énoncé, il est indiqué que cette interface se trouve dans le réseau privé interne 192.168.0.X, sur le port 8080.

Solution :

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

On accède aux détails d'un produit au hasard et on constate en bas de la page qu'il y a la possibilité de vérifier le stock du produit dans certaines 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 :

La donnée est la suivante : stockApi=http://stock.weliketoshop.net:8080/product/stock/check?productId=1&storeId=1.

En utilisant la variable "stockApi", on va scanner le réseau 192.168.0.X:8080 pour essayer d'accéder au serveur hébergeant l'interface administrateur. On utilise l'outil Burp intruder de Burp Suite pour effectuer cette tâche.

On trouve que lorsqu'on soumet l'adresse IP 192.168.0.62 au serveur, le statut de la réponse est différent.

On essaye donc d'accéder au panel administrateur de la façon suivante : http://192.168.0.62:8080/admin.

Et ça fonctionne ! l'interface administrateur s'affiche :

On clique sur "Delete" pour supprimer le compte à Carlos et on remarque que c'est une requête GET qui est envoyée :

Il suffit donc de demander l'URL suivante : http://192.168.0.62:8080/admin/delete?username=carlos.

On vérifie bien que l'utilisateur Carlos n'est plus présent en revenant sur le panel administrateur :

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