SHA:SharkTeam:BNO攻击事件原理分析

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

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

攻击者地址:

0xa6566574edc60d7b2adbacedb71d5142cf2677fb

攻击合约:

0xd138b9a58d3e5f4be1cd5ec90b66310e241c13cd

CoinShares:以太坊有望于加密货币市场悲观行情中脱颖而出:金色财经报道,根据CoinShares在2022年12月29日至2023年1月23日期间进行的一项调查显示,尽管比特币自年初至今的表现优于以太币,但有60%接受调查的投资者认为以太坊具有最引人注目的增长前景,比例高于去年10月的调查(40%)。另一方面,约30%的受访者认为比特币是未来最具吸引力的加密货币,低于之前接受调查有相同观点的受访者比例(近40%)。

上周,CoinShares指出,允许投资者押注较低比特币价格的投资产品的单周资金流入量创下自去年7月以来的最高点,而押注较高以太坊价格的投资产品则出现了稳定的资金流入量。这种动态凸显出比特币相对于以太币的市场悲观情绪。[2023/1/30 11:35:47]

被攻击合约:

BetaShares将推出追踪Coinbase等加密上市公司的ETF:10月13日消息,澳大利亚ETF提供商BetaShares将推出以加密行业上市公司为重点的交易所交易基金 (ETF),名为“etaShares Crypto Innovators ETF”,获得相关监管部门批准后,将在澳大利亚证券交易所 (ASX) 上以股票代码CRYP进行交易。该ETF将跟踪Bitwise加密行业创新者指数,该指数于5月推出,旨在获得在区块链和加密行业运营的顶级上市公司的敞口,包括Coinbase、Riot Blockchain、 MicroStrategy等。(Cointelegraph)[2021/10/13 20:26:01]

0xdCA503449899d5649D32175a255A8835A03E4006

Coinshares CEO:任何投资经理的投资组合中必须有比特币:12月6日消息,Coinshares首席执行官Danny Masters在接受采访时表示,任何投资经理的投资组合中,比特币已不是一种运营商风险,投资组合中必须有比特币。比特币的上升潜力仍然很大,因为它获得了著名的机构投资者的认可,这些投资者将其用作对冲通胀的工具。(fxstreet)[2020/12/6 14:21:46]

攻击交易:

0x33fed54de490797b99b2fc7a159e43af57e9e6bdefc2c2d052dc814cfe0096b9

攻击流程:

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

动态 | 印度银行服务平台Cashaa拟将增加USDT、BCH等五种加密货币:据News.Bitcoin消息,印度银行服务平台Cashaa自从开始提供印度卢比(INR)存款和取款服务以来,加密货币交易量有了显著增长。Cashaa称该平台已将费用削减了50%以上,并准备为印度用户再增加五种加密货币。Cashaa联合创始人Janina Lowisz表示,预计USDT将在1月中旬上线,BCH将在下个季度加入,之后还将会添加LTC、EOS、XRP,预计将在2020年3月底完成。[2019/12/25]

(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)项目上线前,需要向第三方专业的审计团队寻求技术帮助。

金色财经

金色荐读

Block unicorn

区块链骑士

金色财经 善欧巴

Foresight News

深潮TechFlow

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:0ms0-1:14ms