ethernaut 사이트
https://ethernaut.openzeppelin.com/level/0x4E73b858fD5D7A5fc1c3455061dE52a53F35d966
ethereum 취약점 wargame 사이트이다. 처음 개념을 배울 때 변수 저장 방식이나 스토리지 등 low level에서 작동 원리를 잘 이해 못할 수가 있는데 이 사이트의 커리큘럼을 따라 가면 쉽게 익힐 수 있다.
이더넛 사이트에 들어가면 해당 화면이 나타난다. level 0에서 게임 방법과 세팅 등을 설명한다. 이더리움 기반이기 때문에 당연히 지갑이 필요한데 이 사이트에서는 널리 알려진 MetaMask를 사용한다.
여기서 주의할 점은 ethernaut이 사용하는 Rinkeby 네트워크에서 ether를 받을 때 facebook은 안된다는 것이다. facebook 업데이트에 따라 url 형식이 좀 바뀐 문제인 것 같은데 그런데에 시간을 쏟게 되면 시작도 전에 인생무상을 느낄 수 있기 때문에 곱게 트위터 계정을 새로 만들어서 받도록 한다.
개발자 도구 console에서 web3 기본 기능들을 사용할 수 있다. player는 본인 주소이고 매 level 마다 instance를 받아 취약점을 공격한 뒤 제출하여 다음 level로 통과하는 방식
level 0은 튜토리얼이기 때문에 별다른 풀이는 설명하지 않겠지만 js 문법을 바탕으로 개발된 web3이기 때문에 비동기 함수를 await을 사용해 호출해야 한다는 점만 짚고 넘어간다.