Vulnérabilité logique de haut niveau
High-level logic vulnerability
Description du laboratoire
Ce laboratoire ne valide pas correctement les données fournies par l’utilisateur. Il est possible d’exploiter une faille logique dans le processus d’achat afin de modifier le prix final des articles. L’objectif est d’acheter la “Lightweight l33t leather jacket” à un prix non prévu par l’application.
Identifiants fournis :
Utilisateur : wiener
Mot de passe : peter
Analyse du fonctionnement du panier
Lorsqu’un produit est ajouté au panier, la requête envoyée ressemble à ceci :
Le paramètre quantity est directement contrôlé par le client et n’est pas correctement vérifié côté serveur.
Exploitation de la faille logique
Si l’on modifie la quantité en utilisant une valeur négative, par exemple :
Le montant total du panier diminue, ce qui génère un prix négatif (par exemple -1337 $).

Cependant, lors de la validation du panier, l’application bloque ce cas avec le message :
Cart total price cannot be less than zero

Contournement de la restriction
Pour exploiter malgré tout la vulnérabilité :
Ajouter la veste cible avec une quantité valide :
Ajouter ensuite un autre produit avec une quantité négative afin de réduire le total :
Cela permet d’obtenir un total fortement négatif (par exemple -6241.00 $).

Ajuster la quantité négative (par exemple -17) afin que le total final reste positif, mais très faible (inférieur à 100 $).

Mis à jour