Cover photo

智能合约黑客攻击 Ethernaut: 0.Hello Ethernaut

Ethernaut 是一个由 OpenZeppelin 推出的基于 Solidity 编程语言的一个 Web3 对抗类游戏,玩家可以 Hack 每个关卡智能合约来达到通关的效果。

收益

  • Web3 开发入门

    • 对区块链有一个大概的认知

    • 了解开发需要的各种工具、平台

  • 编程手艺+N

    • Solidity 入门起步、也许直接放弃

    • 学会把趁手的高级编程语言NodeJSGoPythonRust 接入 Web3

  • 秃头面积+1

学习资料

教程

  • YouTube

  • Bilibili

题目

https://ethernaut.openzeppelin.com/level/0x7E0f53981657345B31C59aC44e9c21631Ce710c7

源码

题目大意:

  • 链上交互入门介绍

  • 将合约中 cleared 变量修改为true

Hack思路

修改时会验证合约的一个密码,此密码在创建时存储在合约里。可以直接把这个密码读出来

await contract.password();

resp: 'ethernaut0'

await contract.authenticate("ethernaut0");

防范思路

区块链上的数据对所有人都是可见的,所以像密码这种核心数据不应存储在链上【就算加密了也不行】。如需身份认证、应使用链上原生的签名验证,这个至少现在是非常难破解的。

PS: 区块链不能限制某本书只有你可以看,但是可以 证明 这本书? 是你的。

参考资料