coinspect / learn-evm-attacks
- суббота, 17 декабря 2022 г. в 00:38:50
Learn & Contribute on previously exploited vulnerabilities across several EVM projects.
A collection of Foundry tests reproducing exploits, bug bounty reports, and theoretical vulnerabilities on EVM chains. Diagrams and context links accompany each attack reproduction to make it more helpful as a reference or study material for anyone trying to learn more about vulnerabilities in smart contract systems.
Want to take a quick look? Just go to a vulnerability folder (say, MBCToken). Read the README or jump ahead to running the reproduction in your computer! You only need Foundry installed.
$ git clone https://github.com/coinspect/learn-evm-attacks
$ forge install
$ forge test --match-contract Exploit_MBCToken -vvv
We now have 31 reproduced exploits. Of those 31, we have chosen a few in case you want to start studying up with some of the most interesting ones.
DELEGATECALL
.x*y=k
.To run an specific exploit, you can just use:
forge test --match-contract Exploit_MBCToken -vvv
Vary the amount of verbosity (-v
, -vv
...) according to the data you want. -vvvv
includes traces!
The full list is below:
To contribute, create a new file inside the most appropriate category. Use the template.txt
file in the test
folder including the information related to the attack.
Utils that perform flashloans and swaps are provided in test/utils
to ease the job of reproducing future attacks. Also, modules that provide enhanced features to Foundry are included in the test/modules
folder.
The tests should pass
if the attacker succeeded, for examples: your requires should show that the attacker has more balance after the attack than before.