Confiance excessive côté client

Excessive trust in client-side controls

Description du laboratoire

Cette application ne valide pas correctement les données envoyées par le client. Il est possible d’exploiter une faille logique dans le processus d’achat afin de modifier le prix d’un produit. L’objectif est d’acheter une “Lightweight l33t leather jacket” à un prix non prévu par l’application.

Identifiants fournis :

  • Utilisateur : wiener

  • Mot de passe : peter

Analyse du comportement

Un panier d’achat est disponible sur le site

Lors de l’ajout d’un produit au panier, une requête POST est envoyée avec plusieurs paramètres, dont le prix.

Exemple de requête observée lors d’un ajout standard au panier :

Le paramètre price est entièrement contrôlé par le client et n’est pas correctement vérifié côté serveur.

Exploitation

En modifiant manuellement la valeur du paramètre price dans la requête, par exemple :

le serveur accepte la requête sans effectuer de validation stricte.

Résultat

Le produit est ajouté au panier et l’achat peut être validé, malgré un prix manipulé côté client. Cela démontre une confiance excessive accordée aux contrôles côté navigateur, permettant de contourner la logique métier prévue.

Mis à jour