
뉴스에 따르면 탈중앙화 거래 플랫폼 DODO의 wCRES/USDT V2 펀드 풀이 해킹당해 약 98만 달러 상당의 wCRES와 약 114만 달러 상당의 USDT가 이체됐다. DODO는 해당 팀이 해당 펀드 풀 건설 입구를 오프라인 상태로 만들었다고 밝혔습니다. 공격은 DODO V2 크라우드 펀딩 풀에만 영향을 미칩니다. V2 크라우드 펀딩 풀을 제외한 다른 펀드 풀은 안전하며, 팀은 보안 회사와 협력하여 조사하고 복구를 시도하고 있습니다. 자금의 일부 . 더 많은 후속 소식은 DODO 공식 커뮤니티 공지를 주목해주세요.
공격 내역 분석
공격 내역 분석
이 공격 트랜잭션을 살펴보면 전체 공격 프로세스가 매우 짧다는 것을 알 수 있습니다. 공격자는 먼저 FDO와 FUSDT를 wCRES/USDT 펀드풀로 이체한 후 펀드풀 컨트랙트의 flashLoan 기능을 통해 wCRES와 USDT 토큰을 빌려주고 펀드풀 컨트랙트를 초기화합니다.
FDO 및 FUSDT 토큰을 입금하면 wCRES 및 USDT를 성공적으로 빌려주고 자금 풀 계약을 초기화할 수 있는 이유는 무엇입니까? 펀드풀의 플래시론 기능에 허점이 있기 때문일까.
다음으로 flashLoan 기능을 자세히 분석합니다.
특정 코드를 분석하여 플래시론 실행 시 _transferBaseOut 및 _transferQuoteOut 함수를 통해 자금이 이체되고 DVMFlashLoanCall 함수를 통해 특정 외부 로직 호출이 이루어지고 최종적으로 계약이 확인됩니다. 이것은 정상적인 플래시론 기능이므로 플래시론 동안 외부 로직의 실행에만 문제가 있을 수 있음을 알 수 있습니다.
플래시론의 외부 로직 콜을 분석해 보면 공격자가 wCRES/USDT 펀드풀 컨트랙트의 초기화 함수를 호출하고 FDO 주소와 FUSDT 주소를 전달해 펀드풀 컨트랙트를 초기화한 것을 알 수 있다.
여기에서 펀드 풀 계약을 다시 초기화할 수 있음을 알 수 있습니다. 이를 알아보기 위해 초기화 함수를 자세히 분석해 보겠습니다.
공격 과정
공격 과정
1. 공격자는 먼저 FDO와 FUSDT의 두 가지 토큰 계약을 생성한 다음 FDO와 FUSDT 토큰을 wCRES/USDT 자금 풀에 예치합니다.
2. 다음으로 공격자는 wCRES/USDT 펀드 풀 계약의 flashLoan 기능을 호출하여 플래시 론을 수행하고 펀드 풀에 있는 wCRES 및 USDT 토큰을 빌려줍니다.
3. wCRES/USDT 펀드풀 컨트랙트의 초기화 기능은 인증 및 반복되는 초기화 호출을 방지하는 로직이 없기 때문에 공격자는 wCRES/USDT 펀드풀 컨트랙트의 외부 로직 실행 기능을 통해 초기화 기능을 호출한다. 플래시 론 및 펀드 풀 계약 토큰 쌍은 wCRES/USDT에서 FDO/FUSDT로 대체됩니다.
요약하다
요약하다
이 공격의 주된 이유는 자본 풀 계약 초기화 기능에 초기화에 대한 반복 호출을 방지하기 위한 인증 및 제한이 없기 때문에 공격자는 플래시 대출을 사용하여 실제 돈을 빌려준 다음 자본 풀 토큰 쌍을 다음과 같이 대체합니다. 계약 재초기화 공격자가 플래시 론 자금 반환 확인을 우회하고 실제 코인을 주머니에 넣기 위해 생성된 위조 코인.
참조 공격 트랜잭션:
https://cn.etherscan.com/tx/0x395675b56370a9f5fe8b32badfa80043f5291443bd6c8273900476880fb5221e