Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SoliditySecurity — Solidity Security | Kitploit
Outils/GitHubGitHub/al1ex/soliditysecurity
Analyse des VulnérabilitésAnalyse de CodeApprentissage et ÉducationRessources Organisées
GitHubal1ex/soliditysecurity

SoliditySecurity

Solidity Security

Voir le dépôt
3512il y a 5 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

De quoi s'agit-il ?

Cet article se veut une introduction relativement approfondie et à jour qui détaille les erreurs passées commises par les développeurs Solidity, afin d'empêcher les futurs développeurs de répéter l'histoire.

Table des matières

1. Ré-entrance

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : The DAO

2. Débordements arithmétiques (Over/Under Flows)

  • La vulnérabilité
  • Techniques de prévention
  • Exemples concrets : PoWHC et débordement de transfert par lot (CVE-2018-10299)

3. Ether inattendu

  • La vulnérabilité
  • Techniques de prévention
  • Exemples concrets : inconnus

4. Delegatecall

  • La vulnérabilité
  • Techniques de prévention
  • Exemples concrets : Parity Multisig Wallet (deuxième piratage)

5. Visibilités par défaut

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : Parity MultiSig Wallet (premier piratage)

6. Illusion d'entropie

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : contrats PRNG

7. Référencement de contrats externes

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : honeypot de ré-entrance

8. Attaque par adresse/paramètre court

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : inconnu

9. Valeurs de retour CALL non vérifiées

  • La vulnérabilité
  • Techniques de prévention
  • Exemples concrets : Etherpot et King of the Ether

10. Conditions de course / Front Running

  • La vulnérabilité
  • Techniques de prévention
  • Exemples concrets : ERC20 et Bancor

11. Déni de service (DOS)

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : GovernMental

12. Manipulation du timestamp de bloc

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : GovernMental

13. Constructeurs avec précaution

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : Rubixi

14. Pointeurs de stockage non initialisés

  • La vulnérabilité
  • Techniques de prévention
  • Exemples concrets : honeypots : OpenAddressLottery et CryptoRoulette

15. Nombres flottants et précision numérique

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : Ethstick

16. Authentification via tx.origin

  • La vulnérabilité
  • Techniques de prévention
  • Exemple concret : inconnu

Particularités d'Ethereum

  • Ether sans clé
  • Adresses à usage unique
  • Airdrops en une seule transaction

Liste de hacks/bugs intéressants liés à la crypto

Références / Liste de lectures complémentaires

  • Ethereum Wiki - Safety
  • Solidity Docs - Security Considerations
  • Consensus - Ethereum Smart Contract Best Practices
  • History of Ethereum Security Vulnerabilities, Hacks and Their Fixes
  • Decentralized Application Security Project (DASP) Top 10 of 2018
  • A Survey of attacks on Ethereum Smart Contracts
  • Ethereum Smart Contract Security
  • Lessons Learnt from the Underhanded Solidity Contest

1. Ré-entrance

L'une des caractéristiques des contrats intelligents Ethereum est la capacité d'appeler et d'utiliser le code d'autres contrats externes. Les contrats gèrent également généralement de l'ether et, à ce titre, envoient souvent de l'ether à diverses adresses d'utilisateurs externes. L'opération d'appel de contrats externes, ou d'envoi d'ether à une adresse, nécessite que le contrat soumette un appel externe. Ces appels externes peuvent être détournés par des attaquants qui forcent alors le contrat à exécuter du code supplémentaire (par exemple via une fonction fallback), y compris des appels vers lui-même. Ainsi, l'exécution du code « ré-entre » dans le contrat. Ce type d'attaque a été utilisé lors du tristement célèbre hack de The DAO.

Pour en savoir plus sur les attaques par ré-entrance, consultez Reentrancy Attack On Smart Contracts et Consensus - Ethereum Smart Contract Best Practices.

La vulnérabilité

Cette attaque peut se produire lorsqu'un contrat envoie de l'ether à une adresse inconnue. Un attaquant peut soigneusement construire un contrat à une adresse externe contenant du code malveillant dans la fonction fallback. Ainsi, lorsqu'un contrat envoie de l'ether à cette adresse, il invoque le code malveillant. En général, le code malveillant exécute une fonction sur le contrat vulnérable, effectuant des opérations non attendues par le développeur. Le nom « ré-entrance » vient du fait que le contrat externe malveillant rappelle une fonction du contrat vulnérable et « ré-entre » dans l'exécution du code à un emplacement arbitraire du contrat vulnérable.

Pour clarifier cela, considérons le simple contrat vulnérable suivant, qui agit comme un coffre-fort Ethereum permettant aux déposants de ne retirer que 1 ether par semaine.

EtherStore.sol:```solidity contract EtherStore {

uint256 public withdrawalLimit = 1 ether;
mapping(address => uint256) public lastWithdrawTime;
mapping(address => uint256) public balances;

function depositFunds() public payable {
    balances[msg.sender] += msg.value;
}
Télécharger l’outil