買以太坊 買以太坊
Ctrl+D 買以太坊
ads

SDT:慢霧:XCarnival NFT借貸協議漏洞分析_YFDai Finance

Author:

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

原文作者:九九,慢霧安全團隊

2022年6月27日,據慢霧區消息,XCarnival項目被曝出嚴重漏洞遭黑客攻擊并盜走3,087個ETH。XCarnival是一個ETH鏈上的NFT借貸項目,目前項目團隊正在修復漏洞并承諾會對受影響的用戶提供解決方案。慢霧安全團隊第一時間介入分析,并將結果分享如下:

相關信息

核心合約地址

P2Controller:

0x34ca24ddcdaf00105a3bf10ba5aae67953178b85

慢霧:過去一周Web3因安全事件損失約265萬美元:7月17日消息,慢霧發推稱,2023年7月10日至7月16日期間,Web3發生5起安全事件,總損失為265.5萬美元,包括Arcadia Finance、Rodeo Finance、LibertiVault、Platypus、Klever。[2023/7/17 10:59:08]

XNFT:

0x39360AC1239a0b98Cb8076d4135d0F72B7fd9909

xToken:

0x5417da20aC8157Dd5c07230Cfc2b226fDCFc5663

慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:

1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。

2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。

3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。

4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。

針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]

攻擊者EOA地址

慢霧:BSC項目Value DeFi vSwap 模塊被黑簡析:據慢霧區情報,幣安智能鏈項目 Value DeFi 的 vSwap 模塊被黑,慢霧安全團隊第一時間介入分析,并將結果以簡訊的形式分享,供大家參考:

1. 攻擊者首先使用 0.05 枚 WBNB 通過 vSwap 合約兌換出 vBSWAP 代幣;

2. 攻擊者在兌換的同時也進行閃電貸操作,因此 vSwap 合約會將兌換的 vBSWAP 代幣與閃電貸借出的 WBNB 轉給攻擊者;

3. 而在完成整個兌換流程并更新池子中代幣數量前,會根據池子的 tokenWeight0 參數是否為 50 來選擇不同的算法來檢查池子中的代幣數量是否符合預期;

4. 由于 vSwap 合約的 tokenWeight0 參數設置為 70,因此將會采用第二種算法對池子中的代幣數量進行檢查;

5. 而漏洞的關鍵點就在于采用第二種算法進行檢查時,可以通過特殊構造的數據來使檢查通過;

6. 第二種算法是通過調用 formula 合約的 ensureConstantValue 函數并傳入池子中緩存的代幣數量與實時的代幣數量進行檢查的;

7. 在通過對此算法進行具體分析調試后我們可以發現,在使用 WBNB 兌換最小單位(即 0.000000000000000001) vBSWAP 時,池子中緩存的 WBNB 值與實時的值之間允許有一個巨大的波動范圍,在此范圍內此算法檢查都將通過;

8. 因此攻擊者可以轉入 WBNB 進行最小單位的 vBSWAP 代幣兌換的同時,將池子中的大量 WBNB 代幣通過閃電貸的方式借出,由于算法問題,在不歸還閃電貸的情況下仍可以通過 vSwap 的檢查;

9. 攻擊者只需要在所有的 vSwap 池子中,不斷的重復此過程,即可將池子中的流動性盜走完成獲利。詳情見原文鏈接。[2021/5/8 21:37:37]

0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a

慢霧:yearn攻擊者利用閃電貸通過若干步驟完成獲利:2021年02月05日,據慢霧區情報,知名的鏈上機槍池yearnfinance的DAI策略池遭受攻擊,慢霧安全團隊第一時間跟進分析,并以簡訊的形式給大家分享細節,供大家參考:

1.攻擊者首先從dYdX和AAVE中使用閃電貸借出大量的ETH;

2.攻擊者使用從第一步借出的ETH在Compound中借出DAI和USDC;

3.攻擊者將第二部中的所有USDC和大部分的DAI存入到CurveDAI/USDC/USDT池中,這個時候由于攻擊者存入流動性巨大,其實已經控制CruveDAI/USDC/USDT的大部分流動性;

4.攻擊者從Curve池中取出一定量的USDT,使DAI/USDT/USDC的比例失衡,及DAI/(USDT&USDC)貶值;

5.攻擊者第三步將剩余的DAI充值進yearnDAI策略池中,接著調用yearnDAI策略池的earn函數,將充值的DAI以失衡的比例轉入CurveDAI/USDT/USDC池中,同時yearnDAI策略池將獲得一定量的3CRV代幣;

6.攻擊者將第4步取走的USDT重新存入CurveDAI/USDT/USDC池中,使DAI/USDT/USDC的比例恢復;

7.攻擊者觸發yearnDAI策略池的withdraw函數,由于yearnDAI策略池存入時用的是失衡的比例,現在使用正常的比例體現,DAI在池中的占比提升,導致同等數量的3CRV代幣能取回的DAI的數量會變少。這部分少取回的代幣留在了CurveDAI/USDC/USDT池中;

8.由于第三步中攻擊者已經持有了CurveDAI/USDC/USDT池中大部分的流動性,導致yearnDAI策略池未能取回的DAI將大部分分給了攻擊者9.重復上述3-8步驟5次,并歸還閃電貸,完成獲利。參考攻擊交易見原文鏈接。[2021/2/5 18:58:47]

攻擊合約地址

0xf70F691D30ce23786cfb3a1522CFD76D159AcA8d

0x234e4B5FeC50646D1D4868331F29368fa9286238

0x7B5A2F7cd1cc4eEf1a75d473e1210509C55265d8

0xc45876C90530cF0EE936c93FDc8991534F8A6962

在pledgeInternal函數中轉入NFT并生成訂單:

2.接著調用withdrawNFT函數提取出質押的NFT,其中首先判斷該訂單是否被清算狀態,如果不是則判斷該訂單的狀態是否為NFT還未被提取且借款金額為0,如果通過即可提取抵押的NFT。

3.以上為攻擊前生成訂單的準備操作,接著攻擊者開始利用生成的訂單直接調用xToken合約中的borrow函數進行借款。

在borrowInternal函數中,會外部調用controller合約中的borrowAllowed函數來判斷是否可以借款。

可以看到在borrowAllowed函數會調用orderAllowed函數進行訂單相關信息的判斷,但是在這兩個函數中均沒有進行_order.isWithdraw狀態的判斷。因此攻擊者可以利用之前生成的訂單來調用XToken的borrow函數來借款,而因為抵押的NFT在之前已經被提出,故攻擊者可以不用還款來實現獲利。

攻擊交易分析

此處僅展示其中一筆攻擊交易的細節,其余攻擊交易的手法均一致,不再贅述。

攻擊前準備——生成訂單的交易:

0x61a6a8936afab47a3f2750e1ea40ac63430a01dd4f53a933e1c25e737dd32b2f

1.首先攻擊者將NFT轉入攻擊合約并進行授權,接著調用xNFT合約中的pledgeAndBorrow函數在進行抵押NFT生成訂單并借款的操作,此處需要注意一點是該函數可以控制傳入的xToken,攻擊者傳入了自己構造的xToken合約地址,并且讓借款數量為0,目的是為了滿足后續能成功提出NFT時的不被清算且負債為0的條件。

2.攻擊者緊接著調用withdrawNFT函數來進行提取抵押的NFT:

正式攻擊交易:

0x51cbfd46f21afb44da4fa971f220bd28a14530e1d5da5009cfbdfee012e57e35

攻擊者調用xToken合約的borrow函數,傳入之前生成的訂單的orderID,重復了該操作22次,而因為NFT在準備階段已經提走,估計無需還款以此來獲利。

總結

本次漏洞的核心在于借款的時候,沒有進行訂單中NFT是否被提走的狀態的判斷,導致攻擊者可以在把NFT提走之后再利用之前生成的訂單來借款而無需還款,以此來獲利。針對此類漏洞,慢霧安全團隊建議在進行借款操作時應做好訂單狀態中是否已經提走抵押品的判斷,避免再次出現此類問題。

Tags:USDDAISDTUSDTusd幣怎么兌換人民幣YFDai Financeisdt幣能買什么泰達幣usdtapp下載

抹茶交易所
ADA:ADA的Vasil 硬分叉提案提交:倒計時開始_DAN

從7月3日起,應用程序開發人員和交易所測試即將到來的Cardano升級的為期4周的窗口開始,然后才發布到主網上.

1900/1/1 0:00:00
POL:Polygon在Gitcoin第14輪資助中認捐10萬美元_OLY

金色財經報道,據Polygon官方博客消息,Polygon宣布將向GitcoinGrantsRound14捐贈100,000美元,以加強對Polygon生態系統的新項目的持續支持.

1900/1/1 0:00:00
比特幣:知名數字資產交易平臺8V上線模擬交易, 零成本體驗合約交易_Ecomi

近日,全球知名元宇宙生態數字資產交易平臺8V.com宣布上線模擬交易功能。據悉,8V.com用戶模擬交易賬戶將內置初始一百萬美元的虛擬資金,所有用戶可免費使用與真實市場環境同步的模擬合約交易,快.

1900/1/1 0:00:00
ANC:Euler Finance (EUL)_alpaca-finance

一、項目介紹 Euler是以太坊上的一種非托管、無需許可的借貸協議,可幫助用戶在不需要受信任的第三方的情況下從其加密資產中賺取利息或對沖波動的市場.

1900/1/1 0:00:00
NCE:2022 年初元治理現狀報告:都是誰在使用元治理?_ANC

元治理是指協議A持有協議B的治理代幣,并使用這些代幣對協議B的提案進行投票。值得一提的是,我們并沒有一個標準的元治理方式;一個DAO將采用最適合其運營和目標的特殊元治理機制和策略.

1900/1/1 0:00:00
OIN:一個月內上線多家主流交易所,TRX國際化與合規化迎來爆發式提速_Evil Coin

墨菲定律告訴我們,事物處于不利的階段時,可能會面臨更多接踵而來的壞的事情,后疫情時代,中美脫鉤,年初股市的慘綠,同時令幣圈起起伏伏,一系列事件也讓處在浪潮前沿的加密機構積極尋求轉型之路.

1900/1/1 0:00:00
ads