• 零时科技 || 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奖励数量。

    安全建议

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

  • 相关阅读:
    Postgresql源码(57)HOT更新为什么性能差距那么大?
    初始化一个Vue3项目
    云计算实验2 Spark分布式内存计算框架配置及编程案例
    TTS | 语音合成模型实验结果经验总结
    DHCP的原理和配置
    数据处理技巧(8):MATLAB读取txt文本数据并转换成列向量
    Java 解决long类型数据在前后端传递失真问题
    购物车下单
    基于stm32单片机的LCD1602计时器可调时钟显示Proteus仿真
    什么是云渲染?【谈谈云渲染和传统渲染农场的区别】
  • 原文地址:https://blog.csdn.net/m0_37598434/article/details/126366853