零时科技 || EGD被黑客攻击损失超3.6万 BUSD,事件分析

通过此次攻击来看,该次攻击核心主要为项目方合约Token价格计算机制过于简单,当USD数量变动较大时EGDToken数量跟着变动,使得攻击者能够通过影响池子中另一个代币数量来影响EGDToken奖励数量。

EGD.jpg

0x1 事件背景

零时科技区块链安全情报平台监控到消息,北京时间2022年8月8日,EGD加密项目疑似遭到黑客攻击,损失超3.6万 BUSD,零时科技安全团队及时对此安全事件进行分析。

0x2 攻击信息

  • 攻击者钱包地址:

0xee0221d76504aec40f63ad7e36855eebf5ea5edd

  • 攻击合约地址:

0xc30808d9373093fbfcec9e026457c6a9dab706a7

  • 攻击交易:

0x50da0b1b6e34bce59769157df769eb45fa11efc7d0e292900d6b0a86ae66a2b3

  • EGD_Finance合约:

0x93c175439726797dcee24d08e4ac9164e88e7aee

0x3 攻击步骤

  1. 部署攻击合约,调用EGD_Finance合约中stake函数,向EGD_Finance合约发送 100 USD,获得userStakeList

图片1.png

2.利用闪电贷从合约0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae借出2000 USD至攻击者合约地址

图片2.png

  1. 使用闪电贷从BEP20USDT合约中借出424,456 USD

图片3.png

  1. 调用claimAllReward() 获得奖励 5,614,105 EGDToken

图片4.png

  1. 将从EGDFinance 合约中用闪电贷借出的USD 归还

图片5.png

  1. 将获得的5,052,695 EGDToken 兑换为37,327 USD

图片6.png

  1. 将从0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae 通过闪电贷借出的资金归还

图片7.png

  1. 将获得的剩余资金发送至攻击者地址,共36,044 USD

图片8.png

0x4 漏洞核心

攻击者利用EGDToken的价格计算方式进行攻击

图片9.png

获取EGD价格方式为用USD数量除EGD数量,当池子中USD数量价格减少时,EGDToken价格会下降。计算获得奖励的方法为quota/EGDPrice,即当EGDToken价格下降时,获得奖励会增加,攻击者利用这一漏洞进行攻击,利用闪电贷借出池子中USD,使池子中USD减少,EGDToken价格下降,此时获得奖励增加,将奖励取出后,将借出的USD还给池子,之后将EGDToken兑换为USD。

图片10.png

0x5 资金流向

资金由攻击者合约地址转入攻击者地址后目前还未移动

图片11.png

总结及建议

通过此次攻击来看,该次攻击核心主要为项目方合约Token价格计算机制过于简单,当USD数量变动较大时EGDToken数量跟着变动,使得攻击者能够通过影响池子中另一个代币数量来影响EGDToken奖励数量。

安全建议

建议对奖励计算方法进行详细设计

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

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 2022-08-16 15:54
  • 阅读 ( 366 )
  • 学分 ( 6 )
  • 分类:安全

0 条评论

请先 登录 后评论
零时科技
零时科技

零时科技

96 篇文章, 2541 学分