DualPools 攻击分析

币圈资讯 阅读:34 2024-04-22 09:29:42 评论:0
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

来源:深圳零时科技


From Shenzhen Lingshi Technology 比特币今日价格行情网_okx交易所app_永续合约_比特币怎么买卖交易_虚拟币交易所平台

背景

监测到针对DualPools的链上攻击事件:

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

DualPools (https://dualpools.com) 是基于VenusProtocol (https://venus.io/) 修改,是一个DeFi项目,提供了Swap, Lend, Borrow等服务。

其运行模式如下图:

LFtkRMGGShYg3t6sqNnkYnZwu0cJgZJ9cprPj8rw.png

DualPools是一个去中心化借贷平台,用户通过deposti存入underlyingAssets(标的资产),获得对应的dToken;反之,通过Redeem取出underlyingAssets时,销毁对应的dToken。

其中,underlyingAssets标的资产和dToken的兑换比例是通过exchangeRate(流动性指数)来控制的,简单来讲exchangeRate就是dToken的价值。

exchangeRate = (totalCash + totalBorrows - totalReserves) / totalSupply

攻击分析

简单来讲,攻击分为两部分:

1. 黑客通过DualPools新交易池流动性不足(流动性为0),大幅抬高dLINK的价格,通过borrow掏空其他交易池的标的资产(WBNB, BTCB,ETH, ADA, BUSD)。

2. 利用精度截断的问题,取回前期投入的所有LINK。

步骤1详细分析

攻击者通过DODO Private Pool和PancakeSwapV3进行借贷,获取BNB和BUSD作为初始攻击资金,如下图:

C2A8bJTpW0ryvesjNX3qtczpiHdo81Yv6m2ucwTm.png

随后,通过VenusProtocol抵押BNB和BUSD,并借出11500 LINK来进行针对DualPools的攻击。

rgXjspK0LNqzS7kDZjZbbe7DQ5MsnFmW9Uf4uCSE.png

首先,攻击者通过再交易池dLINK-LINK mint获得2个最小单位的dLINK,随后,向交易池中转账11499999999999999999998个单位的LINK。

8v8ZeeIjJYPsGHmFnoWqjmNqCAsSf1KfVbJWM3s8.png

由于该交易池并未初始化,所以没有任何流动性。且exchangeRate的计算方式如下:

exchangeRate = (totalCash + totalBorrows - totalReserves) / totalSupply

此时totalCash为交易池中LINK的余额,为11499999999999999999998+2=11500000000000000000000,totalBorrows和totalReserves均为0,totalSupply为2(因为,黑客通过mint获得了2个最小单位的dLINK)。所以,此时的exchangeRate为5750000000000000000000(将dLINK的价值拉高了575倍)。由于攻击者拥有的2个dLINK,且价值足够高,所以,黑客从其他池子中通过borrow借走了50 BNB, 0.17 BTCB, 3.99 ETH, 6378 ADA, 911 BUSD。

vXaWCnErqy0sDeMRZVkuemWhBDGcRDHoKNFbabvR.png

步骤2详细分析

攻击者通过redeemUnderlying将之前mint的2个最小单位dLINK兑换为11499999999999999999898个单位的LINK。因为,exchangeRate被攻击者操纵为5750000000000000000000。所以,兑换11499999999999999999898个最小单位的LINK需要的dLINK为 11499999999999999999898 / 5750000000000000000000 = 1.999999999999999 即1.999999个最小单位的dLINK,但是由于数据精度截断,导致只需要1个最小单位的dLINK。

AVKq3nysStFCV5jXFFXOYEN4OSTFCqpyd4aQHvZd.png

至此,攻击者取出了之前投入的 11499999999999999999898 个单位的LINK。随后,将从VenusProtocol, PancakeSwapV3, DODO Private Pool的借款归还,完成攻击。

7BuX3BvRPfFMZVFeHEIfUXnf44pVTVaRUVOCbc1N.png

总结

攻击者利用DualPools新交易池流动性差的原因,操纵标的资产的exchangeRate,导致标的资产对应的dToken价格失真,从而可以以极小的dToken作为抵押借出大量的其他标的资产。随后,利用智能合约除法的截断问题,取回之前攻击时投入的资产。至此,完成对DeFi项目DualPools的攻击。

文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明 网址:https://netpsp.com/?id=60547

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
关注我们

若遇到问题,加微信客服---清歌

搜索
排行榜
扫一扫,加我为微信好友加我为微信好友