
공격 내역 분석
공격 내역 분석
이번에 문제가 된 계약은 후루콤보 자체의 에이전시 계약에 있다. 전체 공격 프로세스는 매우 간단합니다. Furucombo의 AaveV2 프록시의 논리 주소를 설정함으로써 공격자는 Furucombo 프록시 계약을 통해 호출된 모든 논리를 공격자 자신의 악의적인 계약으로 전달하여 자금을 탈취합니다.
그러나 일이 그렇게 단순하다면 이 분석은 언급할 가치가 없을 것입니다. 문제는 생각보다 훨씬 복잡합니다.
위 그림과 같이 공격자의 진입은 Furucombo의 batchExec 함수에 있습니다.먼저 batchExec 함수를 분석해 보겠습니다.
위는 Furucombo 프록시 계약의 batchExec 함수의 특정 구현입니다._preProcess 및 _postProcess 계약은 각각 호출 전후에 일부 데이터 처리를 수행하며 여기서 무시할 수 있는 특정 호출 논리를 포함하지 않습니다. 우리는 주로 핵심 _execs 기능을 관찰합니다.
execs 코드 분석을 통해 함수의 주요 논리가 configs 배열의 데이터를 확인하고 configs 배열의 데이터에 따라 데이터에 대해 일부 처리를 수행하는 것임을 찾는 것은 어렵지 않습니다. 그러나 위의 공격자의 통화 데이터를 다시 살펴보면 공격자의 통화 데이터에서 configs의 데이터가 0 주소라는 것을 어렵지 않게 찾을 수 있습니다.
여기에 속임수가 있습니다. 주소 0은 EOA 주소이므로 EOA 주소에 대한 모든 함수 호출은 성공하지만 어떤 결과도 반환하지 않습니다. 이 트릭과 결합하면 execs 함수의 구성 데이터에 대한 부분을 일시적으로 무시할 수 있습니다. 최종 핵심 _exec 함수를 직접 참조하십시오.
_exec 함수의 논리도 매우 간단하여 _to 주소를 확인한 후 지정된 _to 주소로 데이터를 바로 전달합니다. 그리고 공격 거래 분석을 통해 이 _to 주소가 실제로 공식 법적 주소임을 알 수 있습니다.
마지막 단계는 공식적으로 지정된 AaveV2 프록시 계약의 초기화 기능인 _to 주소를 호출하고 공격자 자신의 악성 주소를 AaveV2 프록시 계약의 논리적 주소로 설정하는 것입니다. Furucombo 컨트랙트 분석을 통해 전체 통화 과정에서 심각한 보안 포인트가 없음을 알 수 있으며 통화 주소에 대해서도 화이트리스트 확인이 진행됩니다. 그러면 문제는 호출할 해당 프록시 논리, 즉 AaveV2 프록시 계약에만 있을 수 있습니다.
AaveV2 프록시 계약의 초기화 기능 논리를 직접 분석합니다.
초기화 함수가 public 함수임을 알 수 있으며 처음에 _implementation이 0번지인지 확인하여 0번지이면 에러를 던진다. 이 검사의 목적은 실제로 _implementation이 설정되어 있는지 확인하는 것이며, 설정되면 다시 설정할 수 없습니다. 이 설정에 따르면 초기화 함수가 한 번만 호출될 수 있음을 파악하는 것은 어렵지 않습니다. AaveV2 프록시가 _implementation을 설정하지 않은 경우 이 호출은 성공하지 않습니다. Furucombo가 해당 _implementation을 설정하지 않은 것이 사실입니까? 이를 염두에 두고 트랜잭션 내에서 상태 변경을 검사합니다. 다음과 같이:
0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc에 저장된 내용이 트랜잭션에서 변경되었음을 알 수 있으며, 작성된 내용은 정확히 공격자 자신의 악의적인 계약 주소 0x86765dde9304bea32f65330d266155입니다. c4fa0 c4f04.
그리고 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc는 _implementation 데이터의 저장 주소입니다.
요약하다
요약하다
보조 제목
제안
현재 Furucombo 공격으로 인해 Furucombo 계약(0x17e8ca1b4798b97602895f63206afcd1fc90ca5f)에 대한 토큰을 승인한 사용자는 자금을 잃을 위험이 있습니다.
참조 링크:
참조 링크:
공격 트랜잭션:https://approved.zone/
공격 트랜잭션:
https://ethtx.info/mainnet/0x6a14869266a1dcf3f51b102f44b7af7d0a56f1766e5b1908ac80a6a23dbaf449