
ニュースによると、分散型取引プラットフォーム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 ファンド プール コントラクトの init 関数を呼び出し、FDO アドレスと FUSDT アドレスを渡してファンド プール コントラクトを初期化したことがわかります。
ここで、ファンドプール契約を再初期化できることがわかります。それを知るために、初期化関数を詳細に分析してみましょう。
攻撃プロセス
攻撃プロセス
1. 攻撃者はまず FDO と FUSDT の 2 つのトークン コントラクトを作成し、次に FDO と FUSDT トークンを wCRES/USDT ファンド プールに入金します。
2. 次に、攻撃者は、wCRES/USDT ファンド プール コントラクトの flashLoan 関数を呼び出してフラッシュ ローンを実行し、ファンド プール内の wCRES および USDT トークンを貸し出します。
3. wCRES/USDT ファンド プール コントラクトの init 関数には認証や初期化の繰り返し呼び出しを防止するロジックがないため、攻撃者は、wCRES/USDT ファンド プール コントラクトの初期化関数を、フラッシュローン、およびファンドプール契約 トークンペアは、wCRES/USDTからFDO/FUSDTに置き換えられます。
要約する
要約する
この攻撃の主な理由は、キャピタル プール コントラクトの初期化関数には、初期化の繰り返し呼び出しを防ぐための認証や制限がないため、攻撃者はフラッシュ ローンを使用して実際のお金を貸し出し、キャピタル プール トークン ペアを契約の再初期化 攻撃者がフラッシュ ローン ファンドの返却チェックを回避し、本物のコインをポケットに入れるために作成された偽造コイン。
参照攻撃トランザクション:
https://cn.etherscan.com/tx/0x395675b56370a9f5fe8b32badfa80043f5291443bd6c8273900476880fb5221e