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

By [Leek DEV](https://paragraph.com/@leekdev) · 2023-09-25

---

[Ethernaut](https://ethernaut.openzeppelin.com/) 是一个由 [OpenZeppelin](https://www.openzeppelin.com/) 推出的基于 **Solidity** 编程语言的一个 **Web3** 对抗类游戏，玩家可以 **Hack** 每个关卡智能合约来达到通关的效果。

收益
--

*   Web3 开发入门
    
    *   对区块链有一个大概的认知
        
    *   了解开发需要的各种工具、平台
        
*   编程手艺+N
    
    *   Solidity 入门起步、**也许直接放弃**
        
    *   学会把趁手的高级编程语言**NodeJS**、**Go**、**Python**、**Rust** 接入 **Web3**
        
*   秃头面积+1
    

学习资料
----

*   [Solidity by Example](https://solidity-by-example.org/) - 各种 Solidity Code 案例
    
*   [WTF Academy](https://www.wtf.academy/) - Solidity 基础知识【中文】
    
*   [OpenZeppelin](https://www.openzeppelin.com/) - 通用Solidity基础库、行业标准
    
*   [HardHat](https://hardhat.org/) - Solidity 开发框架，基于NodeJS
    
*   [Foundry](https://getfoundry.sh/) - Solidity 开发框架，基本Rust 编写、可以使用Solidity 写测试用例
    
*   [Soldity Docs](https://docs.soliditylang.org/en/latest/) - Solidity 官方开发文档
    

教程
--

*   YouTube
    
*   Bilibili
    

**题目**
------

[https://ethernaut.openzeppelin.com/level/0x7E0f53981657345B31C59aC44e9c21631Ce710c7](https://ethernaut.openzeppelin.com/level/0x7E0f53981657345B31C59aC44e9c21631Ce710c7)

源码

*   [contracts/contracts/levels/Instance.sol](https://github.com/OpenZeppelin/ethernaut/blob/master/contracts/contracts/levels/Instance.sol)
    
*   [contracts/contracts/levels/InstanceFactory.sol](https://github.com/OpenZeppelin/ethernaut/blob/master/contracts/contracts/levels/InstanceFactory.sol)
    

题目大意：

*   链上交互入门介绍
    
*   将合约中 [cleared](https://github.com/OpenZeppelin/ethernaut/blob/master/contracts/contracts/levels/Instance.sol#L9C7-L9C7) 变量修改为true
    

**Hack思路**
----------

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

    await contract.password();
    
    resp: 'ethernaut0'
    
    await contract.authenticate("ethernaut0");
    

**防范思路**
--------

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

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

**参考资料**
--------

…

---

*Originally published on [Leek DEV](https://paragraph.com/@leekdev/ethernaut-0-hello-ethernaut)*
