亚洲国产成人爱av在线播放,达达兔午夜伦理电影,继夫调教嗯啊h苏柔,国产欧美亚洲精品a

無標(biāo)題文檔
wdCP系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用教程) wdCDN系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用手冊)
wdOS系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用教程) wdDNS系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說明,演示,常見問題,使用手冊)
注冊 發(fā)貼 提問 回復(fù)-必看必看 wddns免費(fèi)智能 DNS 開通 本地或虛擬機(jī)使 用wdcp 一鍵包在mysql編 譯時(shí)"卡住"
AI導(dǎo)航網(wǎng)AI應(yīng)用網(wǎng)站大全 wdcp官方技術(shù)支持/服務(wù) 阿里云8折優(yōu)惠券 無敵云 騰訊云優(yōu)惠中,現(xiàn)注冊更有260代金額券贈(zèng)送
返回列表 發(fā)帖
提問三步曲: 提問先看教程/FAQ索引(wdcp,wdcp_v3,一鍵包)及搜索,會(huì)讓你更快解決問題
1 提供詳細(xì),如系統(tǒng)版本,wdcp版本,軟件版本等及錯(cuò)誤的詳細(xì)信息,貼上論壇或截圖發(fā)論壇
2 做過哪些操作或改動(dòng)設(shè)置等

溫馨提示:信息不詳,很可能會(huì)沒人理你!論壇有教程說明的,也可能沒人理!因?yàn)?你懂的

Cellfram攻擊事件分析及POC

基礎(chǔ)信息

攻擊者地址:

0x2525c811ecf22fc5fcde03c67112d34e97da6079

攻擊合約:

0x1e2a251b29e84e1d6d762c78a9db5113f5ce7c48

攻擊tx:

0x943c2a5f89bc0c17f3fe1520ec6215ed8c6b897ce7f22f1b207fea3f79ae09a6

相關(guān)其它合約

  • OLD_CELL = 0xf3E1449DDB6b218dA2C9463D4594CEccC8934346;
  • LP_OLD = 0x06155034f71811fe0D6568eA8bdF6EC12d04Bed2;
  • NEW_CELL = 0xd98438889Ae7364c7E2A3540547Fad042FB24642;
  • LP_NEW = 0x1c15f4E3fd885a34660829aE692918b4b9C1803d;
漏洞代碼分析

遷移合約的工作原理是:將用戶老的LP代幣轉(zhuǎn)到遷移合約地址,然后遷移合約調(diào)用removeLiquidity移除流動(dòng)性。然后根據(jù)新池子中CELL和WBNB的比例,計(jì)算出需要的NEW CELL的數(shù)量。然后在新池子中添加流動(dòng)性,新的LP代幣會(huì)直接發(fā)送給用戶。如果添加流動(dòng)性需要的WBNB代幣小于移除流動(dòng)性獲得的WBNB,那么將多余的WBNB退還給用戶。

攻擊者可以通過閃電貸操縱池子中兩種代幣的比例,使得舊池子中WBNB增加,OLD CELL減少,新池子中WBNB減少,NEW CELL增加。這樣會(huì)導(dǎo)致舊LP撤銷流動(dòng)性的時(shí)候會(huì)獲得更多的WBNB,添加新池子的時(shí)候只需要少量WBNB。

function migrate(uint amountLP) external  {        (uint token0,uint token1) = migrateLP(amountLP);        (uint eth,uint cell, ) = IUniswapV2Router01(LP_NEW).getReserves();             uint resoult = cell/eth;                      token1 = resoult * token0;        IERC20(CELL).approve(ROUTER_V2,token1);        IERC20(WETH).approve(ROUTER_V2,token0);        (uint tokenA, , ) = IUniswapV2Router01(ROUTER_V2).addLiquidity(            WETH,            CELL,            token0,            token1,            0,            0,            msg.sender,            block.timestamp + 5000        );        uint balanceOldToken = IERC20(OLD_CELL).balanceOf(address(this));        IERC20(OLD_CELL).transfer(marketingAddress,balanceOldToken);        if (tokenA < token0) {            uint256 refund0 = token0 - tokenA;            IERC20(WETH).transfer(msg.sender,refund0);        }     }    function migrateLP(uint amountLP) internal returns(uint256 token0,uint256 token1) {        IERC20(LP_OLD).transferFrom(msg.sender,address(this),amountLP);        IERC20(LP_OLD).approve(ROUTER_V2,amountLP);        return IUniswapV2Router01(ROUTER_V2).removeLiquidity(            WETH,            OLD_CELL,            amountLP,            0,            0,            address(this),            block.timestamp + 5000        );    }攻擊過程分析

1.攻擊者從dodo借出WBNB。

2.從pancake V3中借出NEW CELL,并調(diào)用了攻擊合約中的0xa1d48336方法。

3.通過調(diào)用0xa1d48336方法,在V2池子中將借來的NEW CELL全部換成了WBNB,然后將大量WBNB換成OLD CELL,這會(huì)導(dǎo)致新池子中WBNB減少,舊池子中OLD WBNB的比例升高。然后攻擊者調(diào)用流動(dòng)性遷移合約的migrate方法,移除舊池子流動(dòng)性的時(shí)候,獲得的WBNB會(huì)增多,然后添加新池子流動(dòng)性的時(shí)候,只需要少量的WBNB。

4.然后將新池子中的lp代幣移除流動(dòng)性,獲得WBNB和NEW CELL。

5.因?yàn)橹敖枇薔EW CELL,因此將WBNB換成換成NEW CELL,OLD CELL已經(jīng)沒用了,將OLD CELL換成WBNB,并償還V3 pool借來的NEW CELL。

6.分別在V3和V2池子中將NEW CELL賣出換成WBNB,最后歸還dodo閃電貸出的WBNB。

返回列表