🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑
- 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
- 아무도 알려주지 않은 비트코인, 이더리움의 리스크
- 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
- 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
- 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!
KingOfEther 계약은 사용자가 현재 잔액보다 더 많은 이더를 보내는 것으로 왕위를 요구할 수 있는 게임을 운영
새로운 사용자가 더 많은 이더를 보낼 때, 계약은 이전 “왕”에게 이전 잔액을 반환하려고 시도함
그러나 이 매커니즘은 악용될 수 있음
공격자의 계약은 왕이 되어서 후속 fallback 함수를 실패시키거나 정해진 가스 한도보다 더 많은 가스를 소비하여 KingOfEther 계약이 이전 왕에게 이더를 반환하려고 할때 claimThrone 함수를 실패하게 만들 수 있음
개선방법
Pull 지불 패턴 사용, 사용자가 이더를 받는 대신 인출할 수 있도록 하는 것!
소스파일
https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/DOS.sol
코드 취약성부분
테스트
참고
https://web3sec.notion.site/DOS-2b1e5b2a47a748a485ece0f1f7de2a96
댓글