Cointime

扫码下载App
iOS & Android

SharkTeam:BNO攻击事件原理分析

北京时间2023年7月18日,Ocean BNO遭受闪电贷攻击,攻击者已获利约50万美元。

SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

一、 事件分析

攻击者地址:0xa6566574edc60d7b2adbacedb71d5142cf2677fb

攻击合约:0xd138b9a58d3e5f4be1cd5ec90b66310e241c13cd

被攻击合约:0xdCA503449899d5649D32175a255A8835A03E4006

攻击交易:0x33fed54de490797b99b2fc7a159e43af57e9e6bdefc2c2d052dc814cfe0096b9

攻击流程:
(1)攻击者(0xa6566574)通过pancakeSwap闪电贷借取286449 枚BNO。

(2)随后调用被攻击合约(0xdCA50344)的stakeNft函数质押两个nft。

(3)接着调用被攻击合约(0xdCA50344)的pledge函数质押277856枚BNO币。

(4)调用被攻击合约(0xdCA50344)的emergencyWithdraw函数提取回全部的BNO

(5)然后调用被攻击合约(0xdCA50344)的unstakeNft函数,取回两个质押的nft并收到额外的BNO代币。

(6)循环上述过程,持续获得额外的BNO代币

(7)最后归还闪电贷后将所有的BNO代币换成50.5W个BUSD后获利离场。

二、漏洞分析

本次攻击的根本原因是:被攻击合约(0xdCA50344)中的奖励计算机制和紧急提取函数的交互逻辑出现问题,导致用户在提取本金后可以得到一笔额外的奖励代币。

合约提供emergencyWithdraw函数用于紧急提取代币,并清除了攻击者的allstake总抵押量和rewardDebt总债务量,但并没有清除攻击者的nftAddtion变量,而nftAddition变量也是通过allstake变量计算得到。

而在unstakeNft函数中仍然会计算出用户当前奖励,而在nftAddition变量没有被归零的情况下,pendingFit函数仍然会返回一个额外的BNO奖励值,导致攻击者获得额外的BNO代币。

三、安全建议

针对本次攻击事件,我们在开发过程中应遵循以下注意事项:

(1)在进行奖励计算时,校验用户是否提取本金。

(2)项目上线前,需要向第三方专业的审计团队寻求技术帮助。

About Us

SharkTeam的愿景是全面保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE等建立长期合作关系。

官网:https://www.sharkteam.org

Twitter:https://twitter.com/sharkteamorg

Discord:https://discord.gg/jGH9xXCjDZ

Telegram:https://t.me/sharkteamorg

评论

所有评论

推荐阅读

  • 美国考虑放宽对影子船队的制裁,以降低海运费率

    10月15日,一名美国官员当地时间周三表示,特朗普政府正在考虑放宽针对所谓“影子船队”船只的制裁。这些船只曾运输来自俄罗斯、伊朗和委内瑞拉等国的石油及石油产品。此举旨在降低目前处于历史高位的全球海运费率。此前不久,美国总统特朗普刚刚暂时解除了针对俄罗斯柴油的制裁。这一决定招致了乌克兰总统泽连斯基、欧洲多国政府,以及特朗普所属的共和党内部分参议员的强烈批评。该美国官员透露,目前的讨论重点在于,美国是否允许此前遭制裁的船只运输“合法石油”。这里的“合法石油”是指未受到美国制裁的原油或石油产品,而非受到制裁措施限制的俄罗斯和伊朗石油。该官员表示,此举旨在推动更多成品油和原油从海湾地区运出。(金十)

  • 韩国股指开盘大跌逾5%

    10月15日,韩国KOSPI指数跌破6000点,日内跌5.59%。SK海力士跌超7%,三星电子跌超6%。(金十)

  • 美元指数抹去CPI报告公布以来的所有涨幅

    10月15日,美元指数DXY在亚盘初缓慢下跌,已完全抹去昨日美国9月CPI数据公布以来的所有涨幅(最高累计上涨约70点),现报102.16。英镑兑美元GBP/USD及欧元兑美元EUR/USD涨约0.3%,现分别报1.3231和1.1197。(金十)

  • BTC跌破82000美元

    行情显示,BTC跌破82000美元,现报81984.48美元,24小时跌幅达到2.01%,行情波动较大,请做好风险控制。

  • BTC跌破83000美元

    行情显示,BTC跌破83000美元,现报83015.81美元,24小时跌幅达到0.46%,行情波动较大,请做好风险控制。

  • ETH突破2500美元

    行情显示,ETH突破2500美元,现报2500.4美元,24小时跌幅达到0.23%,行情波动较大,请做好风险控制。

  • 美国现货比特币ETF昨日净流入1.757亿美元

    10月14日,据Farside Investors监测数据,美国现货比特币ETF昨日净流入1.757亿美元。

  • 美国现货以太坊ETF昨日净流入2480万美元

    10月14日,据Farside Investors监测数据,美国现货以太坊ETF昨日净流入2480万美元。

  • 渣打银行在阿联酋推出加密货币交易服务,面向高净值客户

    10月14日,渣打银行宣布在阿联酋推出面向高净值客户的加密货币交易服务,已获得迪拜虚拟资产监管局(VARA)的相关许可。符合条件的客户可通过现有渣打银行账户直接买卖BTC和ETH,无需使用独立钱包或第三方交易平台,由银行负责资产托管及交易结算。 该服务与Zodia Markets合作推出,初期仅面向阿联酋的专业投资者,未来计划拓展至其他市场。渣打表示,这是其首次面向财富管理客户推出加密货币直接交易服务,也是国际银行首次在阿联酋推出此类服务。

  • Web3数据和AI公司Validation Cloud完成1000万美元新一轮融资

    Web3数据和AI公司Validation Cloud宣布从True Global Ventures获得1000万美元融资,该公司计划利用这笔资金扩展其AI产品,实现对Web3数据的无缝访问。 据介绍,该公司的产品平台由三个部分组成:质押、节点API以及数据和AI。在质押方面,Validation Cloud的质押资产已超过10亿美元。Validation Cloud的一些客户包括 Chainlink、Aptos、Consensys、Stellar和Hedera。