> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/web/business-logic/logical-flaw-allowing-you-to-generate-infinite-money.md).

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

### Faille logique de l’argent infini

**Description du laboratoire**

Ce labo contient une faille logique dans le processus d’achat. En utilisant une mauvaise interaction entre \*\* cartes-cadeaux\*\*, \*\* coupons promotionnels\*\* et **confirmation de commande**, il est possible de générer du crédit de manière illimitée, puis d’acheter la veste en cuir Lightweight l33t.

Identifiant fourni :

* **Utilisateur**: wiener
* **Mot de passe**: peter

<figure><img src="/files/67fd3034cd774d37f47c946f7f6b4b2cc1f24fb3" alt=""><figcaption></figcaption></figure>

### Principe de la faille

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

* **Coupon** : `SIGNUP30`

<figure><img src="/files/5124f087f340556e44662b273d4995cc4a627f93" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/25539039ba67dec78a449c63a79762fd5ca6762c" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/932cf5754984a324997ee0f9c57063215d80b3d5" alt=""><figcaption></figcaption></figure>

#### Exemple d’exploitation initiale

* Achat d’une carte-cadeau de **$10**
* Application du coupon `SIGNUP30`
* Prix final payé : **$7**

<figure><img src="/files/759f5fcd1d963507d78cd7730619487eec8fccd7" alt=""><figcaption></figcaption></figure>

* Réception d’un **code de carte-cadeau** (exemple : `DbWseYFi2v`)

<figure><img src="/files/b3a34300f10d4cc1f7b6363977e06e8e3dd7d2e8" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/13d77f039a381023b860d2e51297d745e6ce8d64" alt="" width="563"><figcaption></figcaption></figure>

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

Le gain net est donc de **$3**, portant le crédit total à **$103**.

<figure><img src="/files/cdbaf6a496f3039c189192817a83e44af442a8e0" alt=""><figcaption></figcaption></figure>

### Problèmes logiques 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é à sa pleine valeur**, quel que soit le prix réellement payé.
3. Confirmation de commande via le point de terminaison :

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

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

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

<figure><img src="/files/c5e1fc958559d832bdcba5a53e8c5c5d53f0b872" alt=""><figcaption></figcaption></figure>

### Automatisation de l’attaque (macro)

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

<figure><img src="/files/934dcdb904a1fa18d881fecab2283479f8630c6e" alt=""><figcaption></figcaption></figure>

#### Requêtes interceptées dans la macro

1. Ajouter un produit **Carte-cadeau** au panier
2. Application du coupon de newsletter (`SIGNUP30`)
3. Validation de la commande (`passer la commande`)
4. Récupération de la réponse de confirmation de commande
5. Enregistrement de la carte-cadeau sur le compte utilisateur

<figure><img src="/files/ac4cc9d79f7080ac482b02f93bcf4843c8bd2408" alt=""><figcaption></figcaption></figure>

#### Points clés de la macro

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

<figure><img src="/files/c51e2e493301ec44fb1b984a96dab1a90c3cd3cf" alt=""><figcaption></figcaption></figure>

* Ce code est ensuite réinjecté par requête POST vers le point de terminaison de gestion des cartes-cadeaux.
* Un **paramètre** est défini dans la requête GET pour stocker la valeur du code.

<figure><img src="/files/a44e7880d5d15b3548bd4e0597096ca929168dfd" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/deb78ef91c91cedc0dbbb393d614e225e8b77391" alt=""><figcaption></figcaption></figure>

### Exécution en masse

Une fois la macro configurée :

Toutes les requêtes pour le **périmètre de l’URL** déclenchent automatiquement la macro.

* Un **Intruder** la requête est envoyée à la racine du site.
* Configuration :
* **500 requêtes**
* **Charge utile nulle**

<figure><img src="/files/d9b576b9f7edca9a00c54937a6a0e6aaea5d153e" alt=""><figcaption></figcaption></figure>

**Pool de ressources** limité à **1 requête simultanée**

<figure><img src="/files/3e0da96c45e3bcd2b08322520c5d521f5fef25ad" alt="" width="364"><figcaption></figcaption></figure>

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

#### Résultat

Le solde du compte augmente indéfiniment. / Une fois qu’un crédit suffisant est accumulé, l’achat de la **veste en cuir Lightweight l33t** devient possible sans contrainte financière.

<figure><img src="/files/7566a05fbc3b88d31084a4961d64fb6cb081af19" alt="" width="375"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/web/business-logic/logical-flaw-allowing-you-to-generate-infinite-money.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
