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
SIGNUP30Prix 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
Le coupon peut être utilisé plusieurs fois pour acheter des cartes cadeaux.
Le crédit des cartes cadeaux est toujours appliqué à pleine valeur, sans tenir compte du prix réellement payé.
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
Ajout d’un produit carte cadeau au panier
Application du coupon de la newsletter (
SIGNUP30)Validation de la commande (place order)
Récupération de la réponse de confirmation de commande
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