Georges Randal fait son apparition au café littéraire, et il ne passe pas inaperçu. Orphelin et ruiné par son oncle indélicat, il a vécu dans la pauvreté après la mort de ses parents. Des rumeurs circulent selon lesquelles il serait un voleur, tellement que — même vous — le connaissez. Malgré tout, vous avez toujours voulu lui donner une chance.
Alors qu'il est parti chercher un café, vous remarquez un croquis posé sur la table devant lui, qui semble être le plan de vol d'une banque. Vous décidez de le confronter à ce sujet. Bien qu'il avoue ses intentions, il reste déterminé à mettre son projet à éxécution.
Vous êtes maintenant confronté à un choix difficile. Allez-vous l'aider à réussir son vol ou essayer de prévenir la banque du plan de Georges?
Auteur: Soremo
Challenge de niveau difficile.
Vous disposez du code source du smart contract. Le but est de contourner 3 protections grâce à certaines vulnérabilités. Dans l'ordre il faut :
- Transférer de l'ether sur le contrat sans appeller une fonction de fallback du contrat (fallback, receive). Pour cela, il faut invoquer la fonction selfdestruct depuis un autre contrat.
- Faire un underflow sur le nombre de crédits fidélité pour pouvoir devenir un client de confiance immédiatement.
- Faire une reentrancy attack sur la fonction withdrawGold pour passer lock à True.
Voir le smart contract de l'attaquant et le smart contract d'auto-destruction pour la mise en place technique de la solution.