How to find and exploit vulnerabilities in Ethereum smart contracts
The first thing we need to structure in our lab is our local blockchain, along with what we did to set up Burp and Docker earlier in this book.
Of course, we can use public testnets, but on the one hand, it’s not appropriate to leave our traces on these networks and perhaps dedicate them to a later step, and on the other hand, we may not want to give visibility to our tests.
Fortunately – using Solidity’s development environments – we can recreate our blockchain and lab from the comfort of our machine.
For Solidity, excluding Remix, we have the historic Truffle in JavaScript, which we are particularly fond of and which brings along Ganache – a local blockchain server on which to do testing; Hardhat, which also includes Hardhat Network, its local Ethereum node; and the new Foundry framework, written in Rust.
In general, each environment has its pros and cons, and it’...