0x01:前言
援引官方消息,北京時間12月19日,Fantom鏈上復合收益平臺GrimFinance遭遇了閃電貸攻擊。知道創宇區塊鏈安全實驗室第一時間對本次事件深入跟蹤并進行分析。
0x02:事件詳情
交易細節如下圖所示:
瀏覽上圖的交易過程可知,攻擊合約利用閃電貸借取代幣WFTM和BTC,將借取的代幣與自己鑄造的代幣質押到SpiritSwap里增加流動性獲取lp代幣,而問題就出現在攻擊者通過depositFor()實現質押的過程中。
通過Tenderly調試該筆交易,攻擊者多次遞歸調用depositFor函數,利用該函數獲取大量代幣:
Proof Collective推出新NFT系列Mythics:金色財經報道,Proof Collective宣布,名為Mythics的20,000件NFT系列于今日開始發售。Proof表示,Moonbirds品牌的最新版本將以發布100個新NFT開始,并將持續至少200天每天額外發布100個NFT。Proof由聯合創始人兼首席執行官Kevin Rose運營,于2022年4月首次發布了Moonbirds PFP NFT系列。[2023/7/21 11:08:02]
0x03:漏洞分析
depositFor()函數位于的第1115行:
Nansen:Optimism獨立地址數月增長近20%:金色財經報道,區塊鏈分析公司Nansen在官推發布以太坊Layer 2擴容解決方案Arbitrum和Optimism分析顯示,Optimism的活躍地址數正在追趕Arbitrum,上月獨立地址數增長了19%,而Arbitrum則下降了6.76%。Arbitrum的交易量在空投季達到頂峰,但此后已恢復到空投前的水平,而Optimism交易數量則自2023年5月以來持續上漲。此外,Optimism和Arbitrum的日均Gas費均有所下降,與其他L2和zkEVM擴展解決方案相比,目前Optimism的費用最低。[2023/7/20 11:07:23]
function?depositFor(address?token,?uint?_amount,address?user?)?public?{
灰度比特幣信托負溢價率擴大至42.97%:金色財經報道,Tokenview鏈上數據顯示,當前灰度總持倉量達192.96億美元,主流幣種信托溢價率如下:BTC,-42.97%;ETH,-48.8%;ETC,-67.11%;LTC,-55.71%;BCH,-38.46%。[2023/1/25 11:29:43]
?uint256?_pool?=?balance();
?IERC20(token).safeTransferFrom(msg.sender,?address(this),?_amount);
?earn();
?uint256?_after?=?balance();
?_amount?=?_after.sub(_pool);?//?Additional?check?for?deflationary?tokens
澳大利亞便利店和加油站品牌OTR旗下175個站點支持加密支付:8月18日消息,澳大利亞便利店和加油站品牌On The Run(OTR)已在維多利亞、南澳大利亞和西澳大利亞的所有175個加油站和便利店支持加密支付。這是OTR與加密交易所Crypto.com和支付系統提供商DataMesh之間合作的一部分。Crypto.com為OTR的商戶提供了支付結算層,Datamesh則為其提供了銷售點終端。
除了175家商店之外,OTR的母公司Peregrine Corp還打算將加密支付服務推廣到澳大利亞另外250個零售站點,例如Subway、Oporto和Krispy Kreme。(Cointelegraph)[2022/8/18 12:33:35]
?uint256?shares?=?0;
?if?(totalSupply()?==?0)?{
以太坊基礎設施團隊Nimbus推出首個在DeFi金融衍生產品:8月5日消息,以太坊基礎設施團隊Nimbus宣布推出其首個DeFi結構化金融衍生產品“Smart-Stakern-NFT”。作為一個投資組合增強工具和產生收益的價格波動對沖工具,“Smart-Stakern-NFT”包括一個產生收益的機制,允許持有者從最佳Staking選項中獲得獎勵,該產品投資門檻為1BNB或200BUSD。(crypto daily)[2022/8/5 12:04:01]
??shares?=?_amount;
?}?else?{
??shares?=?(_amount.mul(totalSupply())).div(_pool);
?}
?_mint(user,?shares);
}
該函數的safeTransferFrom()方法從IERC20(token)調用,調用完該方法后,余額balance也會隨之變動,最后通過_mint()方法向用戶添加質押憑證代幣。其中調用的變量token可控,導致攻擊者可以自己實現safeTransferFrom()方法,將該方法重入到depositFor()發起攻擊。
以實施了5次重入攻擊為例,開始_pool的值為0,在重入depositFor方法的前四次里,攻擊者一直傳入自己鑄造的代幣,_pool的值會一直保持為0,但在第五次,也就是最后一次傳入100個受認可的代幣時,_after的值會變成100,而_afer-_pool的差值_amount也就是100,最后由于重入了5次,導致合約會向攻擊者鑄造100*5的質押憑證代幣。
其后果就是攻擊者向該合約質押自己鑄造不受認可的代幣,同樣會增加質押總量,最后利用多出來的質押憑證實現套利。
0x04:修復方案
1.由于depositFor()方法里的token可控才是導致這次攻擊事件的原因,因此只需要在傳遞參數的時候讓token不可控就行:
function?depositFor(?uint?_amount,address?user?)?public
2.由于套利的原因是depositFor()方法里存在修改代幣數量的函數,因此還可以將修改代幣的方法單獨實現,這樣即使token變量可控,也無法成功套利:
function?depositFor(address?token,?uint?_amount,address?user?)?public?{
?IERC20(token).safeTransferFrom(msg.sender,?address(this),?_amount);
}
3.鎖定交易token:
function?setLPToken(address?lp)?public?onlyOwner?{
lpToken?=?lp;
}
function?depositFor(uint?_amount,address?user?)?public?{
uint256?_pool?=?balance();
IERC20(lpToken).safeTransferFrom(msg.sender,?address(this),?_amount);
earn();
......
}
0x05:總結
經過完整分析,知道創宇區塊鏈安全實驗室明確了該次攻擊事件的源頭并非網傳的閃電貸攻擊,攻擊者利用GrimBoostVault合約的depositFor方法參數可控,實施了重入攻擊,將自己的鑄造的無價值代幣兌換成了質押憑證,最后通過withdrawAll方法實現套利,而閃電貸?攻擊者只是利用閃電貸擴大了套利值。
對于合約代碼而言安全性是十分重要的,每一個未經驗證的傳入參數都可能導致巨大的經濟損失,開發者在編寫重要操作方法時,須記住零信任原則,謹慎對待每一個傳入參數。
來源:金色財經
Tags:TOKENTOKEKENTOKWiki Tokenimtoken錢包被盜可以追回嗎Waifu TokenMUNDO Token
過去十多年以來,比特幣支持者一直在爭取主流認可。自卡梅隆·文克萊沃斯(CameronWinklevoss)和泰勒·文克萊沃斯(TylerWinklevoss)從2013年開始申請比特幣交易交易基.
1900/1/1 0:00:00公鏈競爭進入白熱化,既有兼容以太坊EVM的交易所公鏈BSC,也有本輪牛市崛起的新生代公鏈Solana、雪崩協議、Luna、Polygon等,以太坊自身生態也不甘落后.
1900/1/1 0:00:00“我連續參加了?5年北京馬拉松,這塊首屆北馬的數字紀念獎牌太有意義了!”一名北京馬拉松資深跑者興奮地在手機上展示他剛剛搶到的?1981年首屆北京馬拉松數字紀念獎牌.
1900/1/1 0:00:00作者:簡蘇爾 本周鏈游板塊整體依舊保持著下跌的趨勢,用戶量前三的鏈游穩如泰山,依舊是Splinterlands、AlienWorlds、AxieInfinity.
1900/1/1 0:00:00據OpenSea的數據,目前出售的最便宜的BoredApeNFT的價格是53.9ETH,而CryptoPunk的最低要價是52.69ETH,目前價值210,239美元.
1900/1/1 0:00:00我在玩鏈游版消消樂PetGarden,購買游戲kittyNFT后進入游戲,通關后獎勵KTI代幣。玩起來和以前的開心消消樂幾乎沒有差別,但游戲有投入門檻.
1900/1/1 0:00:00