작은 결함이 큰 손실을 초래하는데 왜 GYM 네트워크가 여기에 있습니까?
创宇区块链安全实验室
2022-06-09 04:12
本文约1582字,阅读全文需要约6分钟
BSC 체인의 NFT 프로젝트인 GYM 네트워크는 권한 제어 문제로 공격을 받아 약 $216W의 손실을 입었습니다.

머리말

2022년 6월 8일 베이징 시간,Chuangyu 블록체인 보안 연구소 알기Chuangyu 블록체인 보안 연구소 알기"Public depositFromOtherContract"권한 제어 문제가 공격을 받아 손실에는 7,475 BNB가 포함되어 총 약 216W USD입니다.현재 DEX를 통해 70W USD로 교환된 ETH는 Celer를 통해 이더리움으로 크로스 체인되었습니다. 나머지 3,000 BNB는 공격자 주소에 있습니다.

Chuangyu 블록체인 보안 연구소 알기가능한 한 빨리 이 사건을 추적하고 분석하십시오.

기본 정보

기본 정보

공격받은 계약: 0x0288fba0bf19072d30490a0f3c81cd9b0634258a

공격자 주소: 0xB2C035eee03b821cBe78644E5dA8B8eaA711D2e5

tx:0xfffd3aca0f53715f4c76c4ff1417ec8e8d00928fe0dbc20c89d875a893c29d89

GymSinglePool 대리 계약: 0xa8987285e100a8b557f06a7889f79e0064b359f2

취약점 분석

취약점 분석

GymSinglePool 계약의 구현 과정에서 프로젝트 당사자는 0x0288fba0bf19072d30490a0f3c81cd9b0634258a#depositFromOtherContract 기능에 대한 권한 제어가 부족하여 공격자가 이 기능을 통해 내부 _autoDeposit 기능을 호출하여 소비 제로 서약을 달성할 수 있습니다.

사용자에게 공개되어야 하는 서약의 내부 기능은 다음 그림과 같이 토큰 승인을 구현하는 _deposit 기능입니다."해당 _autoDeposit 함수는 다음을 구현합니다."Pledge 즉, Pledge를 위해 Token을 전송할 필요가 없습니다. 동시에 기능은 사용자에게 직접 노출되며 기능 비교는 다음과 같습니다.

공격 과정

공격 과정

온체인 MEV 및 선제 로봇을 방지하기 위해 공격자는 컨트랙트를 단계별로 배치 및 실행하고 동시에 여러 번 배치/호출하여 GymNetwork 컨트랙트(0x3a0d9d7764FAE860A659eb96A500F1323b411e68)에서 GYMNET 토큰의 완전한 추출을 완료했습니다. 및 배포 호출 중 하나 예를 들면 다음과 같습니다."1. 컨트랙트 배포 후 depositFromOtherContract 호출"특권

0xfd4a2266 방법에 해당하는 서약:

내부 통화 세부 정보는 다음과 같습니다.

2. 0x30649e15를 호출하여 이전 권한 서약의 토큰 인출을 실현합니다.

3. 0x1d111d13 기능을 사용하여 획득한 GYM-토큰을 판매합니다."여러 번 반복"특권

서약-철회-매도 단계, 공격자는 마침내 7475 BNB를 얻었습니다.

공격자는 선행 실행을 억제하기 위해 서약 추가 단계와 출금 단계를 분리하여 두 단계 모두 핵심 작업이며 동시에 일부 단계를 추가하는 Gas Price를 의도적으로 15/20gwei로 높였으며 이는 공격자가 의도적으로 한 것입니다.

추적성

이번 공격의 원인은 프로젝트 당사자가 구현한 권한 기능 권한 제어가 부적절했기 때문인데, 공격이 발견된 지 1시간 만에 프로젝트 당사자는 GymSinglePool 대리 계약의 논리 계약을 여러 번 수정하고 권한 제어를 추가했습니다.

그리고 20분 후 논리 계약에 긴급 계정 폐기 기능을 추가합니다.

프로젝트 당사자의 Deployer 주소 분석의 경우, 추적에 따라 배포된 여러 GymSinglePool 계약은 이틀 전에 배포된 GymSinglePool 계약에 허점이 있을 뿐이며 4일 전 계약에는 이 기능이 없습니다.

공격자의 금전적 준비(From Tornado)는 약 6시간 전이었고, 공격자의 신원도 생각해 볼 만합니다.

요약하다

요약하다

创宇区块链安全实验室
作者文库