Ethereum/Ethernaut

6. Delegation

woo__c.s 2021. 7. 20. 22:08

 먼저 임무를 확인한다.

 이 레벨의 소유권을 주장하라.

 인스턴스 가져오기를 통해 트랜잭션을 발생시키고 인스턴스 주소를 가져온다.

 현재 컨트랙트의 오너를 확인한다

 pwn 함수는 owner를 바꾸는 기능을 가진다.

 

 delegatecall은 다른 컨트랙트의 함수를 호출하는 메소드

 다른 컨트랙트의 함수를 사용하여 delegatecall이 쓰여진 내부 data를 수정할 수 있다.

 

 msg.data에는 함수의 시그니처를 넣을 수 있다. 

 시그니처는 sha3 해시 값의 첫 4byte를 의미한다.

 Delegation 컨트랙트의 fallback 함수를 호출하여 msg.data에 pwn()함수의 시그니처를 

 넣어서 부른다면 Delegation 의 owner를 변경할 수 있을 것이다.

 

 

 

 

참고자료

https://www.youtube.com/watch?v=Kj5UQ42gVqE&t=613s 

https://medium.com/@heuristicwave/ethernaut-delegation-problem-%EC%9D%B4%EB%8D%94%EB%84%9B-6%EB%8B%A8%EA%B3%84-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EC%84%A4-3071841e066a

'Ethereum > Ethernaut' 카테고리의 다른 글

7. Force  (0) 2021.07.22
5. Token  (0) 2021.07.20
4.Telephone  (0) 2021.07.15
3. Coin Flip  (1) 2021.07.10
2.Fallout  (0) 2021.07.09