Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SoliditySecurity — Sicurezza di Solidity | Kitploit
Strumenti/GitHubGitHub/al1ex/soliditysecurity
Analisi delle VulnerabilitàAnalisi del CodiceApprendimento e FormazioneRisorse Curate
GitHubal1ex/soliditysecurity

SoliditySecurity

Sicurezza di Solidity

Vedi Repository
35115 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Cos'è questo

Questo post si propone di essere un post introduttivo relativamente approfondito e aggiornato che descrive gli errori passati commessi dagli sviluppatori di Solidity, nel tentativo di impedire ai futuri sviluppatori di ripetere la storia.

Indice

1. Re-Entrancy

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: The DAO

2. Overflow/Underflow Aritmetici

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: PoWHC e Batch Transfer Overflow (CVE-2018-10299)

3. Ether Inaspettato

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: Sconosciuti

4. Delegatecall

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: Parity Multisig Wallet (Secondo Hack)

5. Visibilità di Default

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: Parity MultiSig Wallet (Primo Hack)

6. Illusione dell'Entropia

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: Contratti PRNG

7. Riferimento a Contratti Esterni

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: Re-Entrancy Honey Pot

8. Attacco Short Address/Parametro

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: Sconosciuti

9. Valori di Ritorno CALL Non Controllati

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: Etherpot e King of the Ether

10. Race Conditions / Front Running

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: ERC20 e Bancor

11. Denial Of Service (DOS)

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: GovernMental

12. Manipolazione del Timestamp di Blocco

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: GovernMental

13. Costruttori con Cautela

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: Rubixi

14. Puntatori di Storage Non Inizializzati

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: Honey Pots: OpenAddressLottery e CryptoRoulette

15. Numeri a Virgola Mobile e Precisione Numerica

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempio Reale: Ethstick

16. Autenticazione tx.origin

  • La Vulnerabilità
  • Tecniche di Prevenzione
  • Esempi Reali: Sconosciuti

Stranezze di Ethereum

  • Ether Senza Chiave
  • Indirizzi Monouso
  • Airdrop a Transazione Singola

Elenco di Hack/Bug Interessanti Legati alle Criptovalute

Riferimenti / Elenco di Ulteriori Letture

  • Ethereum Wiki - Sicurezza
  • Solidity Docs - Considerazioni sulla Sicurezza
  • Consensus - Ethereum Smart Contract Best Practices
  • Storia delle Vulnerabilità di Sicurezza di Ethereum, Hack e Relative Correzioni
  • Progetto per la Sicurezza delle Applicazioni Decentralizzate (DASP) Top 10 del 2018
  • Un'indagine sugli attacchi agli Smart Contract di Ethereum
  • Sicurezza degli Smart Contract di Ethereum
  • Lezioni apprese dal Concorso Solidity Underhanded

1. Re-Entrancy

Una delle caratteristiche degli smart contract di Ethereum è la capacità di chiamare e utilizzare codice di altri contratti esterni. I contratti inoltre gestiscono tipicamente ether e, come tali, inviano spesso ether a vari indirizzi utente esterni. L'operazione di chiamare contratti esterni, o di inviare ether a un indirizzo, richiede che il contratto effettui una chiamata esterna. Queste chiamate esterne possono essere dirottate dagli attaccanti, i quali costringono il contratto a eseguire ulteriore codice (ad esempio tramite una funzione fallback), incluse chiamate di ritorno verso se stesso. L'esecuzione del codice "ri-entra" così nel contratto. Attacchi di questo tipo sono stati utilizzati nel famigerato hack di The DAO.

Per ulteriori letture sugli attacchi di re-entrancy, vedi Reentrancy Attack On Smart Contracts e Consensus - Ethereum Smart Contract Best Practices.

La Vulnerabilità

Questo attacco può verificarsi quando un contratto invia ether a un indirizzo sconosciuto. Un attaccante può costruire con cura un contratto a un indirizzo esterno che contenga codice dannoso nella funzione fallback. Pertanto, quando un contratto invia ether a questo indirizzo, verrà invocato il codice dannoso. In genere il codice dannoso esegue una funzione sul contratto vulnerabile, compiendo operazioni non previste dallo sviluppatore. Il nome "re-entrancy" deriva dal fatto che il contratto esterno dannoso richiama una funzione sul contratto vulnerabile e "ri-entra" nell'esecuzione del codice in un punto arbitrario del contratto vulnerabile.

Per chiarire questo concetto, si consideri il semplice contratto vulnerabile, che funge da caveau Ethereum e consente ai depositanti di prelevare solo 1 ether a settimana.

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;
}
Scarica lo strumento