比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

一文解析DeFi平臺MonoX被盜千萬美元全過程_KEN

Author:

Time:1900/1/1 0:00:00

原標題|千萬美元被盜——DeFi平臺MonoXFinance被黑分析

作者|九九@慢霧安全團隊

2021年11?30?,據慢霧區消息,DeFi平臺MonoXFinance遭遇攻擊,本次攻擊中約合1820萬美元的?WETH和1050萬美元的MATIC被盜,其他被盜Token包括WBTC、LINK、GHST、DUCK、MIM和IMX,損失共計約3100萬美元。慢霧安全團隊第?時間介?分析,并將簡要分析結果分享如下。

攻擊核心

本次攻擊的核?在于利?swap合約中沒有對池中傳?和傳出代幣是否相同作檢查,以此利?價格更新機制的缺陷,使得攻擊者傳?和傳出代幣相同時,價格被二次計算并覆蓋,導致代幣價格不斷被推?,并以此代幣換出池中的其他代幣來獲利。

相關信息

MonoX是?種新的DeFi協議,使?單?代幣設計?于流動性池。這是通過將存?的代幣與vCASH穩定幣組合成?個虛擬交易對來實現的。其中的單?代幣流動性池的第?個應?是?動做市商系統-Monoswap,它在2021年10?時推出。

第一共和銀行跌超70%,市值不足45億美元:金色財經報道,美股銀行股盤前持續下挫,第一共和銀行跌超70%,市值不足45億美元。西太平洋合眾銀行跌超40%,阿萊恩斯西部銀行跌超30%。[2023/3/13 13:00:55]

攻擊者地址1:

0xecbe385f78041895c311070f344b55bfaa953258

攻擊者地址?2:

0x8f6a86f3ab015f4d03ddb13abb02710e6d7ab31b

攻擊合約?1:

0xf079d7911c13369e7fd85607970036d2883afcfd

攻擊合約2:

0x119914de3ae03256fd58b66cd6b8c6a12c70cfb2

信標鏈ETH2合約地址質押數突破1659萬枚ETH:金色財經報道,鏈上數據監測,當前信標鏈ETH2合約地址質押存款超16,595,831枚ETH,近一周增長超120,640ETH。[2023/2/13 12:03:55]

攻擊交易1:

https://etherscan.io/tx/0x9f14d093a2349de08f02fc0fb018dadb449351d0cdb7d0738ff69cc6fef5f299

攻擊交易2:

https://polygonscan.com/tx/0x5a03b9c03eedcb9ec6e70c6841eaa4976a732d050a6218969e39483bb3004d5d

攻擊細節

1、首先攻擊者調用Monoswap.swapExactTokenForToken:0.1個WETH換出79.986094311542621010個MONO。

巴西立法部門批準規范使用比特幣的法案,待總統簽署后生效:11月30日消息,巴西立法者已經批準了一個完整的加密監管框架,承認比特幣可以用作支付手段和南美國家的投資資產,現在只需要總統簽署即可成為法律。據悉,當比特幣被用作支付時,巴西中央銀行(BCB)將作為監管機構,而當它被用作投資資產時,該國的證券交易委員會(CVM)將成為監管機構。BCB和CVM以及聯邦稅務局(RFB)都幫助立法者制定了全面改革立法。該立法還包括對交易所等服務提供商的監管,他們需要遵守特定規則才能在巴西開展業務。(BitcoinMagazine)[2022/11/30 21:11:04]

2、接著攻擊者利用漏洞移除池子中其他用戶的流動性,并為添加攻擊合約的流動性以此來獲取最大的利益。

這里移除流動性處的漏洞在Monoswap.sol中的471-510行,移除池中流動性時通過removeLiquidity函數調用_removeLiquidityHelper函數,而這兩個函數都未做調用者和傳入的to參數的身份驗證,所以可直接移除任意用戶在池中的流動性。

Larry Cermak:Celsius可能尚有15億美元資產:6月14日消息,The Block研究副總裁Larry Cermak昨日發推稱:“為了透明度起見,我將公布我的數據庫,這里面有所有我認為屬于Celsius的錢包。目前,Celsius仍有大約15億美元資產。需要言明的是,鏈上標簽不是一門精確的科學。我可能會犯一些錯誤。這個列表可能不完整,我在追蹤它們的這些年里可能給其中一些貼上了錯誤的標簽。”[2022/6/14 4:25:23]

移除0x7b9aa6的流動性,把1670.7572297649224個MONO和6.862171986812230290個vCASH轉出給0x7b9aa6;移除cowrie.eth的流動性,把152.9745213857155個MONO和0.628300423692773565個vCASH轉出給cowrie.eth;移除0xab5167的流動性,把99940.7413658327個MONO和410.478879590637971405個vCASH轉出給0xab5167;為攻擊合約1在MONO代幣流動池創建流動性。

Adidas Originals系列NFT總市值下降至6057萬美元:金色財經消息,據NFTGo數據顯示,adidas Originals Intothe Metaverse系列NFT總市值下降至60,571,062.58萬美元,在所有NFT項目總市值排名中位列第31;其24小時交易額為186,323.20美元,增幅達8.94%。截止發稿時,該系列NFT當前地板價為1.4ETH。[2022/5/16 3:17:53]

3、緊接著攻擊者調??55?次?Monoswap.swapExactTokenForToken以此來不斷堆?MONO的價格。

這里攻擊的核心是在Monoswap.sol中的swapExactTokenForToken函數,攻擊者傳入MONO代幣使得tokenIn和tokenOut是相同的代幣。

跟到swapIn函數中:

可以發現在swapIn函數中,調用了函數getAmountOut來計算價格。接著跟到getAmountOut函數中發現是利用了_getNewPrice函數來計算tokenInPrice和tokenOutPrice。

跟到_getNewprice函數中,發現當計算tokenInPrice時候傳入的txType參數為TxType.SELL,此時:

當計算tokenOutPrice時候傳入的txType參數為TxType.BUY,此時:

如果傳入和傳出為同一種代幣時,價格計算式中的四個變量都相同,所以很容易得出tokenOutPrice會比tokenInPrice要大。

由于tokenIn和tokenOut是同一個token,swapIn函數在計算完價格后會再次調用_updateTokenInfo函數,使得tokenOutPrice的更新會覆蓋tokenInPrice的更新,所以導致這個token的價格上漲。

4、最后攻擊者調用swapTokenForExactToken函數用MONO來換出池子中的其他代幣。

swapTokenForExactToken函數中調用了swapOut函數,而swapOut函數中計算價格是調用的getAmountIn函數。

在該函數中由于tokenInPoolPrice是取的MONO代幣在池中的價格,而此價格在之前已被推高,導致tokenInPrice變大,計算最后的amountIn變小,用更少的MONO換出了原來相同數量的WETH、WBTC、MONO、USDC、USDT、DUCK、MIM、IMX等池子中的代幣。

5、攻擊者最終把攻擊獲利轉入地址

0x8f6a86f3ab015f4d03ddb13abb02710e6d7ab31b。

以上為以太坊主鏈上的攻擊分析,此外,攻擊者除了在以太坊主鏈上進行攻擊外,還在Polygon上進行了同樣的攻擊,攻擊手法與以太坊主鏈上相同,此處不做過多重復的分析。

據慢霧AML統計,MonoXFinance最終損失約3400萬美元,包括約2.1K個WETH、1.9M個WMATIC、36.1個WBTC、143.4K個MONO、8.2M個USDC、9.1M個USDT、1.2K個LINK、3.1K個GHST、5.1M個DUCK、4.1K個MIM以及274.9個IMX。

總結

本次攻擊是利用了swap合約里沒有對池中傳入和傳出代幣作檢查,從而利用價格更新機制的問題,由于在swap合約中會對池中傳入和傳出的代幣的價格調用同一個函數_upTokenInfo來進行更新,而當傳入和傳出的代幣為同一種代幣時,第二次調用_upTokenInfo函數時,通過價格計算后的更高的tokenOutPrice會覆蓋掉價格更低的tokenInPrice,以此來不斷推高池中該代幣的價格,最后可以換出池中其他的所有代幣來獲利離場。

Tags:TOKENKENTOKETOKHydra TokenNew Chance TokenDreamr Platform Token3X Short Dogecoin Token

火必交易所
本周TOP15新增3款新游戲 以及還有哪些新鏈游? | 鏈游周報_MET

作者:Jasur TOP15鏈游排行榜 數據來源:DappRadar同上周相比,GameFi市場占有率前十的項目中,除BoomCrypto和MOBOX是新面孔外,其余游戲完全相同.

1900/1/1 0:00:00
Gas費之憂:側鏈與Layer2方案的現狀究竟是怎樣的?_ROLL

Polygon?POS 像Ronin這樣的側鏈是用于特定于應用的,而其他側鏈則適用于更通用的應用程序.

1900/1/1 0:00:00
深度長文解析:GameFi經濟模型應如何設計_GAME

原標題|八千字長文:Gamefi經濟模型應該如何設計作者?|?CyborgDoggie,顧問@RacingTime合作者:DailyShen@RacingTime編譯:劉全凱已獲得原作者授權轉載.

1900/1/1 0:00:00
區塊驛站|一文讀懂Aurora:Near上的以太坊L2_AURO

PanteraCapital合伙人PaulVeradittakit2021年12月3日發文介紹NEAR協議上的兼容以太坊的開發者平臺Aurora.

1900/1/1 0:00:00
Qitmeer課堂:MeerToken系列 - UTXO 模型 VS 賬戶模型_MEE

MeerToken系列-UTXO模型VS賬戶模型打開測試版的KAHF錢包,切換到Meer(Testnet)。朋友們一定看到除了Meer本幣之外,還有兩個名字萌萌的資產QITID和METID.

1900/1/1 0:00:00
為什么說真正的區塊鏈項目都離不開一個DAO?_DAO

十幾年間,區塊鏈的發展可謂迅猛異常。在這個過程中,不僅區塊鏈自身的技術有了質的革新和飛躍,由其延伸出來的技術及應用創新也給整個傳統技術體系帶來了翻天覆地的變化.

1900/1/1 0:00:00
ads