零时科技 || DPC攻击事件分析

admin 2022年9月16日00:02:21评论13 views字数 1246阅读4分9秒阅读模式
零时科技 || DPC攻击事件分析



事件背景

零时科技区块链安全情报平台监控到消息,北京时间2022年9月10日,DPC代币合约遭到黑客攻击,损失超73,614 BUSD, 零时科技安全团队及时对此安全事件进行分析。


攻击信息

攻击者钱包地址:

0xf211Fa86CBc60d693D687075B03dFF3c225b25C9

攻击合约地址:

0x2109bbecB0a563e204985524Dd3DB2F6254AB419

被攻击合约地址:

0xb75ca3c3e99747d0e2f6e75a9fbd17f5ac03cebe


攻击步骤

1. 向被攻击合约转移代币,每次转移100 BUSD,共转移 4,200 BUSD

零时科技 || DPC攻击事件分析

2. 使用 50 BUSD 兑换 3.63 DPC

零时科技 || DPC攻击事件分析

3. 将兑换得到的 DPC与 47.4 BUSD 用于添加流动性,将获得的流动性代币质押

零时科技 || DPC攻击事件分析

4. 调用claimStakeLp函数多次取出0.000000000000000001 LP代币,在claimStakeLp中会将当前奖励与之前奖励相加,使得获得的奖励增加。

零时科技 || DPC攻击事件分析
零时科技 || DPC攻击事件分析

5. 调用claimDpcAirdrop函数获得奖励20,602 DPC,将获得奖励兑换为 75,664 BUSD

零时科技 || DPC攻击事件分析


漏洞核心

DPC中通过质押LP代币获得奖励,攻击者通过调用合约中claimStakeLp 函数使得获得的奖励增加。

零时科技 || DPC攻击事件分析

函数claimStakeLp() 中计算获得的奖励是将之前的奖励与getClaimQuota()计算出的奖励累加,而在函数getClaimQuota()中也进行了一次ClaimQuota的累加计算(下图),攻击者通过多次调用claimStakeLp函数使得获得的奖励增加。

零时科技 || DPC攻击事件分析

第一次调用claimStakeLp函数获得奖励

零时科技 || DPC攻击事件分析

多次调用claimStakeLp函数后获得奖励

零时科技 || DPC攻击事件分析


资金来源

通过混币平台Tornado.Cash转入 10 BNB

零时科技 || DPC攻击事件分析


资金流向

攻击者通过重复攻击共获利约73,614 BUSD,目前资金仍在攻击者钱包中。

零时科技 || DPC攻击事件分析


零时科技 || DPC攻击事件分析

总结建议

此次攻击主要原因是对于奖励机制设置出现漏洞,使得奖励数额成倍数增加,且奖励数额计算时与调用claimStakeLp()函数时传入的数字无关,因此攻击者可以用一个较小的金额进行多次调用,实现获得大额的奖励。


安全建议

  • 建议计算中涉及到函数调用时需要详细检查变量数值变动情况,避免数值被重复计算。

  • 建议项目方上线前进行多次审计,避免出现审计步骤缺失。



零时


零时科技 || DPC攻击事件分析


零时科技 || DPC攻击事件分析


往期内容回顾


零时科技 | Nomad 跨链桥被盗1.8亿美元事件分析

零时科技 | Audius金库1850万枚AUDIO被盗事件分析

零时科技 | Fortress攻击事件分析

Beanstalk Farms攻击事件分析 | 零时科技

为什么黑客如此“钟爱”跨链桥

零时科技 | Agave Finance攻击事件分析

Hundred Finance攻击事件分析 | 零时科技

零时科技 | 被盗6.1亿美金,Poly Network 被攻击复盘分析

零时科技 || Uniswap v3出现漏洞?No,新型钓鱼来袭!

Popsicle攻击事件复盘分析 | 零时科技

原文始发于微信公众号(零时科技):零时科技 || DPC攻击事件分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月16日00:02:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   零时科技 || DPC攻击事件分析http://cn-sec.com/archives/1297722.html

发表评论

匿名网友 填写信息