空手套白狼:Popsicle 被黑剖析

欧博亚洲客户端下载

欢迎进入欧博亚洲客户端下载(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

2021 年 08 月 04 日,据慢雾区新闻,跨链收益率平台 Popsicle Finance 的 Sorbetto Fragola 产物遭受黑客攻击,慢雾平安团队第一时间介入剖析,并将效果分享如下。

攻击靠山

在本次攻击中,攻击者通过确立 3 个攻击合约来完成对 Sorbetto Fragola 的攻击,以下是本次攻击涉及的详细地址:

攻击者:

H1:0x3A9D90eD069021057d9d11E78F142F2C4267934A

H2:0xf9E3D08196F76f5078882d98941b71C0884BEa52

攻击合约:

C1:0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6

C2:0x576cf5f8ba98e1643a2c93103881d8356c3550cf

C3:0xd282f740bb0ff5d9e0a861df024fcbd3c0bd0dc8

Sorbetto Fragola:

0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48

攻击工具

通过官方的先容我们可以知道被攻击的 Sorbetto Fragola 产物主要是用于辅助用户治理 Uniswap V3 头寸,以阻止用户在 Uniswap V3 做市的头寸超出所选定的价钱局限。用户可以在 Sorbetto Fragola 中存入提供流动性对应的两种代币,Sorbetto Fragola 会给到用户 Popsicle LP (PLP) 凭证,用户使用此凭证可以获取奖励并取回抵押的流动性资金,同时此凭证也是可以随意转移给其他用户的。

攻击焦点

此次攻击的焦点在于,Sorbetto Fragola 中通过用户持有的 PLP 凭证数目来介入盘算用户所能获得的奖励,但 PLP 凭证是可以随意转移给其他用户的,但其凭证转移的历程中没有举行奖励结算转移等操作。这就导致了只要持有 PLP 凭证就可以立刻获取奖励。最终造成同个 PLP 凭证却能在同个时间节点给多个持有者带来收益。接下来我们对整个攻击细节举行详细剖析。

攻击细节

攻击首先通过 H1 地址确立了攻击合约 C1、C2 与 C3,随后攻击者通过 H2 地址挪用了攻击合约 C1 最先举行详细的攻击,生意为:

0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc。

通过剖析今生意我们可以发现,其先从 AAVE 中行使闪电贷借出了 30,000,000 个 USDT、13,000 个 WETH、1,400 个 WBTC、30,000,000 个 USDC、3,000,000 个 DAI、200,000 个 UNI,为后续在 Sorbetto Fragola 中提供流动性获得 PLP 凭证做准备。

随后攻击者挪用 Sorbetto Fragola 合约的 deposit 函数存入提供流动性对应的两种代币 (这里以攻击者首次存入的 WETH 与 USDT 代币为例),其会先通过 checkDeviation 与 updateVault 修饰器划分检查价钱与更新奖励。价钱检查主要是针对价钱是否泛起大颠簸 *** 控等情形,这里不做睁开。而奖励更新就与本次攻击亲热相关了,我们切入剖析:

可以看到其挪用了 _updateFeesReward 函数举行详细的更新操作,我们跟进此函数:

从上图我们可以很容易的发现其先通过 positionLiquidity 函数获取 tickLower 与 tickUpper 局限内合约所持有的流动性数目。然后通过 _earnFees 函数从 Uniswap V3 Pool 中收取提供流动性奖励。之后再通过 _tokenPerShare 函数盘算每个 PLP 凭证所能分得的流动性奖励。最后通过 _fee0Earned 与 _fee1Earned 函数来盘算用户所持有的 PLP 凭证数目可以获得若干奖励,并使用user.token0Rewards 与 user.token1Rewards 变量举行纪录,如下图所示:

但由于此时攻击者刚举行充值操作,还未获得 PLP 凭证,因此其 user.token0Rewards 与 user.token1Rewards 变量最终纪录的自然是 0。

看到这里你可能已经意识到问题所在了,既然 user.token0Rewards 与 user.token1Rewards 变量纪录的奖励是凭证用户持有的 PLP 凭证举行盘算的,且 PLP 凭证是可以转移的,那么是否只要持有 PLP 凭证再去触发此变量纪录奖励就可以让我们获得奖励。谜底自然是一定的。我们继续看 deposit 函数:

皇冠下载

www.huangguan.us)是一个开放皇冠即时比分、皇冠官网注册的平台。皇冠下载(www.huangguan.us)提供最新皇冠登录,皇冠APP下载包含新皇冠体育代理、会员APP。

在奖励更新之后通过 liquidityForAmounts 函数盘算出在目的价钱区间内用户提供资金所占的流动性然后挪用 Uniswap V3 Pool  mint 函数注入流动性。随后通过 _calcShare 盘算出 Sorbetto Fragola 所需要铸造给用户的 PLP 凭证数目。

在攻击者获得 PLP 凭着后也正如我们所想的那样将 PLP 凭证转移给其他地址,并挪用 Sorbetto Fragola 合约 collectFees 函数来举行奖励纪录。

通过上图的 PLP 凭证链上转移纪录我们可以看到,在攻击合约 C1 获得 PLP 凭证后,将其转移给了攻击合约 C2,随后挪用了 collectFees 函数。之后攻击合约 C2 再将 PLP 凭证转移给攻击合约 C3 再次挪用了 collectFees。最后攻击合约 C3 将 PLP 凭证转移回攻击合约 C1。我们切入 collectFees 函数举行剖析:

通过上图我们可以很容易的看出此函数也有 updateVault 修饰器,而经由上面的剖析我们可以知道 updateVault 修饰器用于奖励更新,因此在攻击合约 C2 持有 PLP 凭证的情形下挪用 collectFees 函数触发 updateVault 修饰器则会凭证其持有的 PLP 凭证数目来盘算应分得的奖励,并记入用户的 token0Rewards 与 token1Rewards 变量。需要注重的是此时对于此类 PLP 凭证持有者缓存的 tokenPerSharePaid 变量是 0,这直接导致了用户可以获得 PLP 凭证持有奖励。

我们从链上状态的转变也可以看出:

随后攻击合约 C2 也如法炮制即可获得奖励纪录。

最后 PLP 凭证转移回到攻击合约 C1,并挪用了 Sorbetto Fragola 合约的 withdraw 函数燃烧掉 PLP 凭证取回先前存入的 WETH 与 USDT 流动性。而且攻击合约 C2、C3 划分挪用 collectFees 函数传入所要领取的奖励数目以领取奖励。这样攻击者在同个区块中不仅拿回了存入的流动性还分外获得多份流动性提供奖励。

随后攻击者最先行使其他的代币对如法炮制的薅取奖励,如下图所示:

攻击流程

1、攻击者确立多个攻击合约,并从 AAVE 中行使闪电贷借出大量的代币;

2、攻击者使用借来的代币存入 Sorbetto Fragola 合约中获得 PLP 凭证;

3、攻击者行使 Sorbetto Fragola 合约的奖励结算缺陷问题将获得的 PLP 凭证在其确立的攻击合约之间举行转移并划分挪用了 Sorbetto Fragola 合约的 collectFees 函数来为各个攻击合约纪录奖励;

4、攻击者燃烧 PLP 凭证取回在 Sorbetto Fragola 合约中存入的流动性资金,并通过各个攻击合约挪用 Sorbetto Fragola 合约的 collectFees 函数来获取纪录的奖励;

5、不停的循环上述操作攻击各个流动性资金池薅取奖励;

6、送还闪电贷赚钱走人。

MistTrack 剖析历程

慢雾 AML 团队剖析统计,本次攻击损失了约 4.98M USDT、2.56K WETH、96 WBTC、5.39M USDC、159.93K DAI、10.49K UNI,靠近 2100 万美元。

资金流向剖析

慢雾 AML 旗下 MistTrack 反洗钱追踪系统剖析发现,攻击者 H1 地址首先从 Tornado.Cash 提币获取初始资金随后部署了三个攻击合约:

攻击赚钱后通过 Uniswap V3 将获得的代币兑换成 ETH 再次转入了 Tornado.Cash:

现在攻击者账户余额仅为 0.08 ETH,其余资金均已通过 Tornado.Cash 举行转移。

总结

  • 评论列表:
  •  新2代理手机管理端(www.22223388.com)
     发布于 2021-12-04 00:01:04  回复
  • 皇冠登三出租rent.22223388.com

    皇冠登三出租(rent.22223388.com)是皇冠(正网)接入菜宝钱包的TRC20-USDT支付系统,为皇冠代理提供专业的网上运营管理系统。皇冠登三出租系统实现注册、充值、提现、客服等全自动化功能。采用的USDT匿名支付、阅后即焚的IM客服系统,让皇冠代理的运营更轻松更安全。

    想象力不错

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。