Level 7 - Force ⏺⏺⏺
Level Setup
Some contracts will simply not take your money ¯\_(ツ)_/¯
The goal of this level is to make the balance of the contract greater than zero.
Things that might help:
Fallback methods
Sometimes the best way to attack a contract is with another contract.
See the "?" page above, section "Beyond the console"
Level Contract
Exploit
The exploit uses selfdestruct
to force funds to be sent to the contract.
Create an attack contract that contains funds (
1 wei
) which is then force sent to the target contract usingselfdestruct
.
Submit instance... 🥳
Completion Message
In solidity, for a contract to be able to receive ether, the fallback function must be marked payable
.
However, there is no way to stop an attacker from sending ether to a contract by self destroying. Hence, it is important not to count on the invariant address(this).balance == 0
for any contract logic.
Notes
Last updated