Faille logique permettant de générer de l’argent infini

Infinite money logic flaw

Description du laboratoire

Ce laboratoire contient une faille logique dans le processus d’achat. En exploitant une mauvaise interaction entre les cartes cadeaux, les coupons promotionnels et la confirmation de commande, il est possible de générer du crédit de manière illimitée, puis d’acheter la Lightweight l33t leather jacket.

Identifiants fournis :

  • Utilisateur : wiener

  • Mot de passe : peter

Principe de la faille

Après l’inscription à la newsletter, un coupon promotionnel est attribué :

  • Coupon : SIGNUP30

Dans la boutique, il est possible d’acheter des cartes cadeaux.

Le problème vient du fait que le coupon peut être appliqué lors de l’achat de ces cartes.

Exemple d’exploitation initiale

  • Achat d’une carte cadeau de 10 $

  • Application du coupon SIGNUP30

  • Prix final payé : 7 $

  • Réception d’un code de carte cadeau (exemple : DbWseYFi2v)

Lorsque ce code est utilisé dans la section Gift Cards, le solde du compte augmente de 10 $ alors que seulement 7 $ ont été dépensés.

Le gain net est donc de 3 $, ce qui fait passer le crédit total à 103 $.

Problèmes de logique identifiés

  1. Le coupon peut être utilisé plusieurs fois pour acheter des cartes cadeaux.

  2. Le crédit des cartes cadeaux est toujours appliqué à pleine valeur, sans tenir compte du prix réellement payé.

  3. La confirmation de commande via l’endpoint :

    permet de récupérer dynamiquement le code de la carte cadeau.

Aucune limitation n’empêche l’automatisation de ce processus.

Automatisation de l’attaque (macro)

Pour exploiter la faille à grande échelle, une macro Burp Suite est mise en place.

Requêtes interceptées dans la macro

  1. Ajout d’un produit carte cadeau au panier

  2. Application du coupon de la newsletter (SIGNUP30)

  3. Validation de la commande (place order)

  4. Récupération de la réponse de confirmation de commande

  5. Enregistrement de la carte cadeau sur le compte utilisateur

Points clés de la macro

  • Le code de carte cadeau est extrait dynamiquement depuis la réponse de cart/order-confirmation.

  • Ce code est ensuite réinjecté par requête POST vers l’endpoint de gestion des cartes cadeaux.

  • Un paramètre personnalisé est défini dans la requête GET afin de stocker la valeur du code.

Le coupon appliqué récupère sa valeur depuis une requête précédente, ce qui permet son réemploi automatique.

Exécution massive

Une fois la macro configurée :

Toutes les requêtes correspondant au scope de l’URL déclenchent automatiquement la macro.

  • Une requête Intruder est envoyée vers la racine du site.

  • Configuration :

    • 500 requêtes

    • Payload nul

Resource pool limité à 1 requête concurrente

Cette approche permet d’enchaîner les achats, confirmations et crédits de cartes cadeaux sans interruption.

Résultat

Le solde du compte augmente de manière illimitée. Une fois suffisamment de crédit accumulé, l’achat de la Lightweight l33t leather jacket devient possible sans contrainte financière.

Mis à jour