免责声明:金色财经所有资讯仅代表作者个人观点,不构成任何投资理财建议。请确保访问网址为(jinse.cn) 举报

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

    AZvLVBueS8dPHk3YIbziS3gpLnKyfry9IYBrqrSW.jpeg

    背景介绍

    2024年11月18日,我们监控到 BNB Smart Chain 上的一起攻击事件,被攻击的项目为 BTB 。攻击交易为

    https://bscscan.com/tx/0xfb6df4053c2f1000cb03135064af19a79a87cf25efe612ae5f3468390d6be216

    本次攻击共造成约 5000 USD 的损失。

    攻击及事件分析

    首先,攻击者利用 flashloan 从 pancakeSwapV3 中贷款 100,000 BUSD

    图片

    随后,攻击者利用 pancakeSwapV2 将贷到的 100,000 BUSD 兑换为 1,263,427 BTB 

    图片

    接着,攻击者利用 BTB 的 exchangeBTBToUSDT 将 3,052 BTB 兑换为 4,999 BUSD

    图片

    我们看一下被攻击的智能合约的函数 exchangeBTBToUSDT 的代码

    图片

    可以看到,兑换的价格是由 pancakeSwapV2 的 BTB 和 BUSD 的 pair 的 reserve 决定的。这样,攻击者就可以利用 pacakeSwap 兑换大额 BTB 或 BUSD 来操纵 BTB 的价格。我们可以看到,攻击者在用 flashloan 贷来的 100,000 BUSD 兑换了 BTB 。

    因此,在攻击者使用 pancakeSwapV2 进行大额 BUSD 兑换 BTB 前

    reserve0 为:

    1,327,362,530,716,302,619,951,383 ,

    reserve1 为:

    5047758199614262100984 ,

    兑换后 reserve0 为:

    63934622394514316973499 ,

    reserve1 为:

    105047758199614262100984 。 

    图片

    通过 getPrice 中 getAmountOut 的实现,我们可以计算出攻击者兑换前和兑换后的 BTB 价格变化。

    图片

    我们通过计算得到 BTB 的价格从 1BTB=0.00379143964708692 BUSD 拉升到了 1 BTB =1.6381204893766859 BUSD 。价格被拉升了 400 多倍。

    因此,攻击者使用了 3052 BTB 兑换到了 4999 BUSD 。

    图片

    最后,攻击者用剩下的 1260375 BTB 从 pancakeSwapV2 中兑换了 99,964 BUSD。

    图片

    攻击者再归还 flashloan 的贷款及利息 100,100 BUSD 后,获利 4,863 BUSD 。 

    总结

    本次漏洞的成因是项目方在完成兑换 BTB 到 BUSD 时,使用了过时的价格预言机,导致攻击者可以轻易操纵 BTB 的价格,先进行大笔买入 BTB ,拉高 BTB 的价格后再卖出。最后完成套利。建议项目方在设计价格预言机和代码运行逻辑时要多方验证,合约上线前审计时尽量选择多个审计公司交叉审计。

    jinse.cn 0
    好文章,需要你的鼓励
    jinse.cn 0
    好文章,需要你的鼓励
    参与评论
    0/140
    提交评论
    文章作者: / 责任编辑:

    声明:本文系金色财经原创稿件,版权属金色财经所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:金色财经",违者将依法追究责任。

    提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

    金色财经 > 深圳零时科技 > 零时科技 || BTB 攻击事件分析
    • 寻求报道
    • 金色财经中国版App下载
      金色财经APP
      iOS & Android
    • 加入社群
      Telegram
    • 意见反馈
    • 返回顶部
    • 返回底部