Validation insuffisante du flux de travail

Insufficient workflow validation

Description du laboratoire

Ce laboratoire repose sur des hypothèses incorrectes concernant l’enchaînement logique des étapes du processus d’achat. L’application ne vérifie pas correctement que toutes les conditions nécessaires (notamment le paiement effectif) ont bien été respectées avant de valider une commande.

Objectif : Exploiter cette faille afin d’acheter le produit “Lightweight l33t leather jacket” sans disposer du crédit requis.

Identifiants fournis :

  • Utilisateur : wiener

  • Mot de passe : peter

Analyse du comportement de l’application

  • Lorsqu’un utilisateur tente de payer un article sans disposer d’un crédit suffisant, l’application renvoie l’erreur suivante :

Cependant, la confirmation de commande repose uniquement sur l’accès à l’URL suivante :

  • Cette page ne vérifie pas si le paiement a réellement été effectué ou si le solde était suffisant.

Exploitation de la faille

  1. Ajouter au panier un article dont le prix est de 1337 € (par exemple la veste ciblée).

Ne pas finaliser le paiement normalement (ce qui échoue à cause du manque de crédit).

Accéder directement, via une requête GET, à l’URL suivante :

/cart/order-confirmation?order-confirmed=true

  • L’application valide alors la commande sans effectuer de contrôle supplémentaire.

Mis à jour