SharkTeam:BNO攻擊事件原理分析

2023-07-19 00:07:52

北京時間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)項目上线前,需要向第三方專業的審計團隊尋求技術幫助。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

Layer2 格局劇變:Base 生態有哪些關鍵亮點?

在激烈競爭的 L2 賽道中,原本穩坐釣魚臺的 Arbitrum 和 Optimism 似乎面臨着前...

加密泡泡啊
72 1個月前

XRP 漲至 7.5 美元?分析師告訴 XRP 大軍為純粹的煙火做好准備!

加密貨幣分析師 EGRAG 表示,XRP 即將迎來關鍵時刻,價格可能大幅上漲,這取決於能否突破關鍵...

加密泡泡啊
73 1個月前

以太坊ETF通過後 將推動山寨幣和整個加密生態大爆發

比特幣ETF通過後市場動蕩,以太坊ETF交易前景分析 比特幣ETF通過後,市場出現了先跌後漲的走勢...

加密泡泡啊
79 1個月前

ZRO為啥這么能漲?

ZRO概述 ZRO代幣,全稱為LayerZero,是LayerZero協議的本地代幣,旨在作為治理...

加密泡泡啊
66 1個月前

今晚ETH迎來暴漲時代 op、arb、metis等以太坊二層項目能否跑出百倍幣?

北京時間7月23日晚上美股开盤後 ETH 的ETF开始交易。ETH的裏程碑啊,新的時代开啓。突破前...

BNBCCC
76 1個月前

Mt Gox 轉移 28 億美元比特幣 加密貨幣下跌 ETH ETF 提前發行

2014 年倒閉的臭名昭著的比特幣交易所 Mt Gox 已向債權人轉移了大量比特幣 (BTC),作...

加密圈探長
71 1個月前