Skip to content

Latest commit

 

History

History
24 lines (13 loc) · 2.07 KB

File metadata and controls

24 lines (13 loc) · 2.07 KB

Parity MultiSig hacking challenge

Level 1 🎮

You are the security engineer of project Avalanche. News breaks that there is a vulnerability that allows attackers to withdraw all funds from the MultiSig wallet that project Avalanche is using. The CTO of project Avalanche who has the keys to the wallet is on a quest to find himself. He is on a silent retreat and does not pick up the phone. After panicking for few moments ... 😰 ... you realise you have only one choice ... you need to hack the wallet yourself and secure the funds (100k ETH) before someone else does.

Level 2 🎮

You have managed to secure the funds for project Avalanche successfully. Things have been running smoothly and you have migrated the funds back into the patched MultiSig wallet. One day you stumble upon the following Reddit post from user CptBTCBeard1337 :neckbeard:

You inferior smart contract hipsters, I told you all along BTC is the only one that counts the rest are shit coins. You will never be able to secure a full turing complete programing language HARHAR. I have found a vulnerability in your MultiSig wallet that allows me to destroy all your worthless coins. Dump all your ETH and buy BTC or prepare to be annihilated. You have 1 hour 💥 HARHAR.

What a jerk ... after reviewing the code in WalletLibrary you realise that there might be something to it. The CTO of project Avalanche who has the keys to the wallet is on a diving trip and does not pick up the phone ... 😱 ... you must act quickly. What can you do to secure the funds and prevent CptBTCBeard1337 from locking up all your ETH.

Hints 🤔

  • You can use 0xd34435a94f999e0e9fc7c3780a15aa1a815f76e9 to solve the challenge.
  • You have solved level 1 when have you more than 100k ETH in your account. Run ./get_status 1 to make sure you completed the level successfully.
  • You complete the level when CptBTCBeard1337 is no longer able to lockup your ETH. Run ./get_status 2 to make sure you completed the level successfully.

Credits 🙏

  • Thanks to N1k1tung for creating the prototype