🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑
- 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
- 아무도 알려주지 않은 비트코인, 이더리움의 리스크
- 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
- 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
- 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!
재진입 취약점
EtherStore 재진입 취약점은 스마트계약설계의 결함으로, 공격자가 재진입을 악용하여
EtherStore 계약으로부터 자신이 권한이 있는 금액보다 더 많은 자금을 인출할 수 있는 문제임.
이 취약점은 EtherStore 계약의 withdrawFunds 함수에서 발생함.
여기서 Ether가 공격자 주소로 전송되고 나서 잔액을 업데이트 하기 때문임.
이로 인해 공격자의 계약은 잔액 업데이트 이전에 withdrawfunds 함수로 재진입 호출을 수행할 수 있음.
이로써 여러차례의 인출이 발생하고 EtherSotre 계약에서 모든 Ether가 흡수될 수 있음.
시나리오.
EtherStore는 간단한 금고로, 모든 사람의 이더를 관리할 수 있음.
하지만 이는 취약함.
보안방법
check-effect-interation을 따르고 openzeppelin reentrancy guard를 사용할것.
테스트 소스
https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Reentrancy.sol
재진입 공격 취약코드
재진입 공격 테스트
재진입 공격 성공
참고
https://web3sec.notion.site/Reentrancy-6eb97f96a3454f6085808c079f922146
댓글