# 智能合约黑客攻击 Ethernaut: 0.Hello Ethernaut **Published by:** [Leek DEV](https://paragraph.com/@leekdev/) **Published on:** 2023-09-25 **URL:** https://paragraph.com/@leekdev/ethernaut-0-hello-ethernaut ## Content Ethernaut 是一个由 OpenZeppelin 推出的基于 Solidity 编程语言的一个 Web3 对抗类游戏,玩家可以 Hack 每个关卡智能合约来达到通关的效果。收益Web3 开发入门对区块链有一个大概的认知了解开发需要的各种工具、平台编程手艺+NSolidity 入门起步、也许直接放弃学会把趁手的高级编程语言NodeJS、Go、Python、Rust 接入 Web3秃头面积+1学习资料Solidity by Example - 各种 Solidity Code 案例WTF Academy - Solidity 基础知识【中文】OpenZeppelin - 通用Solidity基础库、行业标准HardHat - Solidity 开发框架,基于NodeJSFoundry - Solidity 开发框架,基本Rust 编写、可以使用Solidity 写测试用例Soldity Docs - Solidity 官方开发文档教程YouTubeBilibili题目https://ethernaut.openzeppelin.com/level/0x7E0f53981657345B31C59aC44e9c21631Ce710c7 源码contracts/contracts/levels/Instance.solcontracts/contracts/levels/InstanceFactory.sol题目大意:链上交互入门介绍将合约中 cleared 变量修改为trueHack思路修改时会验证合约的一个密码,此密码在创建时存储在合约里。可以直接把这个密码读出来await contract.password(); resp: 'ethernaut0' await contract.authenticate("ethernaut0"); 防范思路区块链上的数据对所有人都是可见的,所以像密码这种核心数据不应存储在链上【就算加密了也不行】。如需身份认证、应使用链上原生的签名验证,这个至少现在是非常难破解的。 PS: 区块链不能限制某本书只有你可以看,但是可以 证明 这本书? 是你的。参考资料… ## Publication Information - [Leek DEV](https://paragraph.com/@leekdev/): Publication homepage - [All Posts](https://paragraph.com/@leekdev/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@leekdev): Subscribe to updates - [Twitter](https://twitter.com/LeekDEV): Follow on Twitter