DualPools 攻擊分析

訪客 1年前 (2024-02-23) 閱讀數(shù) 226 #區(qū)塊鏈
文章標(biāo)簽 前沿文章

來(lái)源:深圳零時(shí)科技

背景

監(jiān)測(cè)到針對(duì)DualPools的鏈上攻擊事件:

https://bscscan.com/tx/0x90f374ca33fbd5aaa0d01f5fcf5dee4c7af49a98dc56b47459d8b7ad52ef1e93

DualPools (https://dualpools.com)?是基于VenusProtocol (https://venus.io/)?修改,是一個(gè)DeFi項(xiàng)目,提供了Swap, Lend, Borrow等服務(wù)。

其運(yùn)行模式如下圖:

LFtkRMGGShYg3t6sqNnkYnZwu0cJgZJ9cprPj8rw.png

DualPools是一個(gè)去中心化借貸平臺(tái),用戶通過(guò)deposti存入underlyingAssets(標(biāo)的資產(chǎn)),獲得對(duì)應(yīng)的dToken;反之,通過(guò)Redeem取出underlyingAssets時(shí),銷毀對(duì)應(yīng)的dToken。

其中,underlyingAssets標(biāo)的資產(chǎn)和dToken的兌換比例是通過(guò)exchangeRate(流動(dòng)性指數(shù))來(lái)控制的,簡(jiǎn)單來(lái)講exchangeRate就是dToken的價(jià)值。

exchangeRate = (totalCash + totalBorrows - totalReserves) / totalSupply

攻擊分析

簡(jiǎn)單來(lái)講,攻擊分為兩部分:

1. 黑客通過(guò)DualPools新交易池流動(dòng)性不足(流動(dòng)性為0),大幅抬高dLINK的價(jià)格,通過(guò)borrow掏空其他交易池的標(biāo)的資產(chǎn)(WBNB, BTCB,ETH, ADA, BUSD)。

2. 利用精度截?cái)嗟膯?wèn)題,取回前期投入的所有LINK。

步驟1詳細(xì)分析

攻擊者通過(guò)DODO Private Pool和PancakeSwapV3進(jìn)行借貸,獲取BNB和BUSD作為初始攻擊資金,如下圖:

C2A8bJTpW0ryvesjNX3qtczpiHdo81Yv6m2ucwTm.png

隨后,通過(guò)VenusProtocol抵押BNB和BUSD,并借出11500 LINK來(lái)進(jìn)行針對(duì)DualPools的攻擊。

rgXjspK0LNqzS7kDZjZbbe7DQ5MsnFmW9Uf4uCSE.png

首先,攻擊者通過(guò)再交易池dLINK-LINK?mint獲得2個(gè)最小單位的dLINK,隨后,向交易池中轉(zhuǎn)賬11499999999999999999998個(gè)單位的LINK。

8v8ZeeIjJYPsGHmFnoWqjmNqCAsSf1KfVbJWM3s8.png

由于該交易池并未初始化,所以沒有任何流動(dòng)性。且exchangeRate的計(jì)算方式如下:

exchangeRate = (totalCash + totalBorrows - totalReserves) / totalSupply

此時(shí)totalCash為交易池中LINK的余額,為11499999999999999999998+2=11500000000000000000000,totalBorrows和totalReserves均為0,totalSupply為2(因?yàn)椋诳屯ㄟ^(guò)mint獲得了2個(gè)最小單位的dLINK)。所以,此時(shí)的exchangeRate為5750000000000000000000(將dLINK的價(jià)值拉高了575倍)。由于攻擊者擁有的2個(gè)dLINK,且價(jià)值足夠高,所以,黑客從其他池子中通過(guò)borrow借走了50 BNB, 0.17 BTCB, 3.99 ETH, 6378 ADA, 911 BUSD。

vXaWCnErqy0sDeMRZVkuemWhBDGcRDHoKNFbabvR.png

步驟2詳細(xì)分析

攻擊者通過(guò)redeemUnderlying將之前mint的2個(gè)最小單位dLINK兌換為11499999999999999999898個(gè)單位的LINK。因?yàn)椋琫xchangeRate被攻擊者操縱為5750000000000000000000。所以,兌換11499999999999999999898個(gè)最小單位的LINK需要的dLINK為 11499999999999999999898 / 5750000000000000000000 = 1.999999999999999?即1.999999個(gè)最小單位的dLINK,但是由于數(shù)據(jù)精度截?cái)啵瑢?dǎo)致只需要1個(gè)最小單位的dLINK。

AVKq3nysStFCV5jXFFXOYEN4OSTFCqpyd4aQHvZd.png

至此,攻擊者取出了之前投入的 11499999999999999999898?個(gè)單位的LINK。隨后,將從VenusProtocol, PancakeSwapV3, DODO Private Pool的借款歸還,完成攻擊。

7BuX3BvRPfFMZVFeHEIfUXnf44pVTVaRUVOCbc1N.png

總結(jié)

攻擊者利用DualPools新交易池流動(dòng)性差的原因,操縱標(biāo)的資產(chǎn)的exchangeRate,導(dǎo)致標(biāo)的資產(chǎn)對(duì)應(yīng)的dToken價(jià)格失真,從而可以以極小的dToken作為抵押借出大量的其他標(biāo)的資產(chǎn)。隨后,利用智能合約除法的截?cái)鄦?wèn)題,取回之前攻擊時(shí)投入的資產(chǎn)。至此,完成對(duì)DeFi項(xiàng)目DualPools的攻擊。

熱門
主站蜘蛛池模板: 久久久久久久女国产乱让韩| 亚洲精品无码久久久久AV麻豆| 黄色网页在线免费观看| 在线精品免费视频无码的| 中文字幕在线看片| 日韩精品无码中文字幕一区二区| 亚洲最大成人网色香蕉| 男人边摸边吃奶边做下面| 和搜子居的日子2中文版| 香港一级毛片免费看| 国产精品v片在线观看不卡| 99久久伊人精品综合观看| 婷婷影院在线观看| 中文字幕精品一区二区三区视频| 日韩电影免费在线观看网站| 亚洲国产午夜精品理论片| 毛片在线观看网站| 人人妻人人澡人人爽人人dvd| 精品国产日韩亚洲一区| 国产1区2区在线观看| 青青青久97在线观看香蕉| 国产精品中文字幕在线| 国产一卡2卡3卡4卡网站免费| 俄罗斯小小幼儿视频大全| 亚洲欧美日韩精品久久| 亚洲av无码一区二区三区在线播放 | 中国videos性高清免费| 日本高清com| 亚洲av无码一区二区三区鸳鸯影院 | 特一级黄色毛片| 六月天丁香婷婷| 老司机精品在线| 国产亚洲AV人片在线观看| 黄色毛片免费看| 国产日韩综合一区二区性色AV| **实干一级毛片aa免费| 国产边打电话边被躁视频| 99re99.nat| 夜精品a一区二区三区| mm1313亚洲国产精品美女| 嫩的都出水了18p|