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


     

    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

     

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

     

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

     

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

     

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

     

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

     

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

     

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

     

    0x4 漏洞核心

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

     

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

     

    0x5 资金流向

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

     

    总结及建议

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

    安全建议

    • 建议对奖励计算方法进行详细设计
    • 建议项目方上线前进行多次审计,避免出现审计步骤缺失

  • 相关阅读:
    pytorch的自动微分、计算图 | 代码解析
    multipart
    大语言模型的原理
    Java 8 新特性 Ⅱ
    springMvc27-get乱码解决
    JAVA智慧校园平台系统源码:基于前后端框架VUE2+Spring boot+Wed端原生小程序搭建的智慧校园平台
    “座驾改造” VoxEdit 创作大赛
    elasticsearch——jdk版本问题,非docker版 直接使用安装包。
    MySQL explain SQL分析工具详解与最佳实践
    一篇全网最详细的可视化图表Python库,学到就赚到了
  • 原文地址:https://blog.csdn.net/m0_37598434/article/details/126366853