AIZPT 토큰은 2024년 10월 5일 익스플로잇을 겪었으며, 당시 약 $20,000의 손실이 발생했습니다. 이 익스플로잇의 근본 원인은 토큰 구매 시 가격 계산 구현이 잘못되었기 때문입니다.
개요
공격자 계약: https://bscscan.com/address/0x8408497c18882bfb61be9204cfff530f4ee18320
취약한 계약: https://bscscan.com/address/0xbe779d420b7d573c08eee226b9958737b6218888
트랜잭션 공격: https://bscscan.com/tx/0x5e694707337cca979d18f9e45f40e81d6ca341ed342f1377f563e779a746460d
익스플로잇 분석
AIZPT 토큰 계약은 사용자가 직접 토큰을 구매하고 판매할 수 있으며, 토큰 구매 시 50% 수수료가 부과되고 토큰 판매 시 50%의 토큰이 소각됩니다.
문제는 토큰 구매 시 사용되는 공식에 있습니다. 그들은 Uniswap V2의 quote 함수 공식을 사용했습니다. 이 함수는 예비금 비율이나 유동성을 이해하는 데 유용하지만, 실제 거래 가격을 결정하는 데는 적합하지 않습니다.
이 공식을 사용하면 사용자가 시스템을 악용하여 저가에 토큰을 구매하고 고가에 판매하여 이익을 얻을 수 있습니다(50% 수수료를 지불한 후에도). 이는 Uniswap V2의 getAmountOut 공식을 사용하는 판매 기능을 통해 가능합니다.
공격자는 8000 BNB를 플래시론으로 차입하여 AIZPT 토큰을 구매했습니다. 그리고 이 토큰을 여러 번 판매하여 34.88 BNB의 이익을 얻었습니다.
교훈
개발자는 자신의 맞춤형 로직과 통합할 때 타사 계약의 논리를 철저히 검토하고 이해해야 합니다.
간단한 ERC20 계약에 약간의 변경을 가하거나 수십만 줄의 코드로 된 복잡한 DeFi 프로토콜이라도 보안 감사를 강력히 권장합니다.






