목록2026/01/28 (2)
Tyojong
[The Ethernaut] Vault
문제 설명코드 분석문제 컨트랙트 배포 시 설정된 패스워드와 일치하는 패스워드를 unlock함수 인자로 넣으면 금고의 잠금이 해제된다.익스플로잇password 변수가 private로 선언되어 있지만 private은 단순히 다른 컨트랙트에서 접근을 막을 뿐, 외부에서 직접 스토리지를 조회하는 것은 막지 못한다. cast storage 명령어를 사용해 storage 슬롯을 읽는다. (슬롯0: locked, 슬롯1: password) 알아낸 패스워드를 unlock함수의 인자로 넣고 실행시키면 문제를 해결할 수 있다.
web3/The Ethernaut
2026. 1. 28. 17:40
[The Ethernaut] Force
문제 설명코드 분석이번 문제의 컨트랙트 코드를 보면 이더를 받기 위한 함수가 정의되지 않았다. 원래 컨트랙트에서는 이더를 받기 위해 receive() 함수, fallback() 함수, payable 함수를 사용해야한다.해당 함수들을 사용하지 않는 컨트랙트에 이더를 보내면 해당 트랜잭션은 revert된다.Selfdestructselfdestruct는 solidity에서 스마트 컨트랙트를 블록체인에서 제거하고, 남은 이더를 지정된 주소로 강제 전송하는 함수이다.이 함수를 사용하게 되면 컨트랙트의 어떤 코드도 실행하지 않고 강제로 이더를 전송하게 된다. receive나 fallback이 없어도, 이더 수신을 거부하는 로직이 있어도 강제로 받게 된다.익스플로잇공격 컨트랙트를 생성하여 selfdesturct를 이..
web3/The Ethernaut
2026. 1. 28. 17:21
