免责声明:金色财经所有资讯仅代表作者个人观点,不构成任何投资理财建议。 举报

    Brahma TopGear惨遭攻击 竟是因为囫囵吞枣不够用户死活的函数授权问题

    前言

    2022年11月10日,知道创宇区块链安全实验室监测到ETH 链上的 brahTOPG 项目遭到攻击。黑客经过研究发现该项目存在任意外部调用的漏洞,原因是该项目的Zapper合约未对用户传入的数据进行严格检查,因此攻击者利用此漏洞窃取对合约有授权用户的代币,从中获利9万美元

    事件分析

    通过分析攻击的Txn

    0xeaef2831d4d6bca04e4e9035613be637ae3b0034977673c1c2f10903926f29c0:

    rOv05iBuHSsc04vAg57ryoAFMMNaX6KrMlDSHwtt.png

    攻击者查看了0x392472c4369d6cdea89e2bddfd8144eecfdc032c钱包余额,然后调用Zapper合约的zapIn() 函数:

    PdeHBYrfGZDbdi90SW00t7jEGfTVbcSlyIwye5VS.png

    该函数会为合约转账 requiredToken 指定的代币,由于该函数传入的参数外部可控,攻击者构造该参数为假代币,并将假代币转给 Zapper 合约,接着会调用内部函数zap():

    ZgerHU68tTYqmSx5r6RZC0SWXJCP1D1Tk1f0QIW6.png

    假代币就会进到变量 inputToken 里,随后检查合约中假代币的余额是否大于或等于传入的值,由于IERC20(inputToken).approve()函数会外部调用假代币合约的 approve() 函数,最后外部调用了 swapTarget() 函数,该函数的传入参数同样外部可以操控,导致之后攻击者利用此任意外部调用漏洞,转走其他有授权用户的 USDC 代币:

    4K2N1xNF2jOV1l2ekJTWHgp5YAWOOREYo7yjJjjd.pngeXKHaFRUgrW9tQ3LWehdHddXHduGbbt4UB8AZ4ru.png

    攻击者重复以上步骤攻击了三次,转移了受害者账户下约889343枚 USDC 代币。

    总结

    此次被攻击的主要原因在于Zapper合约没有对用户上传数据进行严格检查监控,导致了任意外部调用的问题,然后攻击者利用此任意外部调用问题窃取了对合约有授权的用户代币。

    合约函数权限的检查仍是容易被忽略的,黑客恰好可以利用该问题,进行任意外部调用,从而发生安全事件。

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

    声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。

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

    金色财经 > 知道创宇区块链安全实验室 > Brahma TopGear惨遭攻击 竟是因为囫囵吞枣不够用户死活的函数授权问题
    • 寻求报道
    • 金色财经中国版App下载
      金色财经APP
      iOS & Android
    • 加入社群
      Telegram
    • 意见反馈
    • 返回顶部
    • 返回底部