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 se rend maintenant dans les détails d'un produit quelconque et en bas de la page, on peut vérifier la quantité du stock selon la ville :
Lorsqu'on clique sur "Check stock", c'est une requête POST qui 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.
On va modifier l'URL pour interroger le serveur lui-même avec localhost : http://localhost/.
La requête ne passe pas et on voit qu'un filtre est mis en place :
On essaye de remplacer localhost par "127.0.0.1" : Ce qui donne : http://127.0.0.7/. Mais la requête ne passe toujours pas.
On va utiliser une alternative à "127.0.0.1", qui est "127.1". Ce qui donne : http://127.1/. La requête passe ! L'input n'est pas filtré.
On essaye maintenant d'accéder au panel administrateur avec http://127.1/admin mais le mot "admin" semble bloqué.
On va changer certaines minuscules en majuscules : http://127.1/AdMIN. De cette maniére, le mot 'admin' n'est pas bloqué et la requête est bien transmise .Le panel administrateur est renvoyé :
On clique sur "Delete" pour supprimer le compte de Carlos et on remarque qu'une requête GET qui est envoyée au serveur :
Il suffit donc d'inscrire l'URL suivante dans les données de la requête POST précédente : http://127.1/AdMIN/delete?username=carlos.
On lance la requête et le serveur supprime le compte de l'utilisateur Carlos. On peut le vérifier en revenant sur l'interface administrateur :
Le lab est désormais validé !