2022年3月13日,成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,Paraluni合約遭受攻擊,損失約170萬美元,成都鏈安技術團隊對此事件進行了相關分析。
#1總述
我們以第一筆攻擊交易0xd0b4a1d4964cec578516bd3a2fcb6d46cadefe1fea5a2f18eec4c0a496e696f9為例:
地址列表
攻擊地址:
0x94bC1d555E63eEA23fE7FDbf937ef3f9aC5fcF8F
攻擊合約:
0x4770b5cb9d51EcB7AD5B14f0d4F2cEe8e5563645
ParaProxy:
BlockSec將1536ETH價值380萬美金的被黑資金歸還給saddlefinance項目方:5月5日消息,BlockSec攻擊檢測系統與4月30日上午9點01分檢測到saddlefinance借貸項目被攻擊并自動對攻擊進行攔截,成功阻斷一筆交易攻擊,成功攔截了1536ETH資金落入攻擊者賬戶中,目前BlockSec已將全部資金歸還給項目方,根據項目方公布此處攻擊事件總共損失8000萬美元。[2022/5/5 2:50:36]
0x633Fa755a83B015cCcDc451F82C57EA0Bd32b4B4
ParaImpl:
0xA386F30853A7EB7E6A25eC8389337a5C6973421D(MasterChef)
UGT:
Aku項目方價值3,400萬美元ETH被永久鎖定,系合約實現邏輯問題:4月23日消息,NFT項目方Akutar的11,539.5 ETH(約合3,400萬美元)被永久鎖定在拍賣合約。
Aku采用的是類似荷蘭降價拍賣的形式,拍賣結束后會按照結束價格給用戶退還超過最低價格的部分,因此這涉及refund以及total bids統計兩個方面,而項目方在這兩個方面均存在實現邏輯問題。
第一個漏洞,processRefunds() 會被惡意合約阻斷,實現DoS攻擊,也確有用戶使用惡意合約阻斷了processRefunds()執行,但該名用戶表示只是讓項目方確認問題存在,隨即設置惡意合約變量,使得processRefunds()順利執行完,因此該漏洞雖被利用,但已成功解決。
第二個漏洞,也就是真正導致項目方無法提款的關鍵所在,processRefunds()是按照msg.sender的數量記錄在了refundProgress變量,拍賣結束項目方調用claimProjectFunds()取出合約內的ETH時,要求滿足refundProgress >= totalBids,而totalBids記錄的是NFT的數量,合約最終狀態refundProgress數值為3669,totalBids數值為5495,從而導致項目方無法提取合約內的11539.5 ETH。
需要指出的是,在執行processRefunds()之前,參與拍賣的用戶可以在三天后通過emergencyWithdraw()將個人投入的ETH取回,但由于processRefunds()的執行,導致用戶的拍賣狀態由未處理變為refund,從而不能再進行emergencyWithdraw()。[2022/4/23 14:43:41]
0xbc5db89CE5AB8035A71c6Cd1cd0F0721aD28B508
分析 | ICO項目方在過去一月拋售ETH的數量 不如2018年12月一天的多:據Santiment 統計顯示,最近一個月以來,ICO項目方累計消耗以太坊數量僅為28500ETH,約合3800萬美元,這個數字已經是開始記錄以來的最低水準。轉移超過8500ETH的項目方只有Bancor等零星數個項目放,大多數項目方還是傾向于繼續持有以太坊。對此,Singularity Financial表示,ICO項目方停止拋盤ETH的可能性有如下幾個方面:一、套現的法幣已足夠項目運營;二、幣價趨于穩定,看好后市幣價;三、采用抵押ETH獲得法幣等方法維持項目運營。[2019/2/25]
UBT
0xcA2ca459Ec6E4F58AD88AEb7285D2e41747b9134
1.向CakeSwap(0x7EFaEf62)中通過閃電貸借貸224BSC-USD,224BUSD
火幣李林:項目方申請火幣上幣時,披露紅杉資本等頂級VC投資信息,將加速上幣審核流程:火幣創始人李林剛在朋友圈申明:從昨天開始,突然被很多朋友問到交易所上幣申請會不會針對紅杉資本有特別的政策。感覺有點突然,現申明如下,1.雖然火幣是紅杉資本投資的企業,但火幣不能保證所有紅杉資本投資的項目都會在火幣list。公平公正對待所有的項目,是交易所的基本立場。2.投資人和股東背景確實是項目上幣審核的一個指標,對于像紅杉等這種全球頂級的vc投資的項目,在交易所上幣審核時會得到加分。3.項目方在申請火幣上幣時,最好也重點披露一下是否接受過類似紅杉這種頂級vc的投資,我們會直接聯系vc做一些基礎的盡調,提升上幣審核效率,加速上幣審核流程。[2018/5/8]
2.把第1步借到的代幣向Para-LP(0x3fD4FbD7)中添加流動性,并將獲得的222枚流動性代幣的接收地址指定為UBT(0xcA2ca459)地址,這一步是為了后續的重入做準備。
圖1初始準備
3.攻擊合約(0x4770b5cb)調用ParaProxy合約的depositByAddLiquidity函數,添加流動性代幣抵押挖礦,此處傳入的pid為18,對應的Para-LP(BSC-USD/BUSD)0x3fD4FbD7a83062942b6589A2E9e2436dd8e134D4,但是token0,token1傳入的地址為UGT、UBT的地址,數量為1e18。
圖2重入攻擊
4.此處原本正常的邏輯為:添加流動性,并將流動性代幣存入pid為18的流動性抵押池,但是本函數在代碼中并未檢查添加的流動性token0、token1得到的流動性代幣是否與pid對應的流動性代幣地址一致,導致了攻擊的發生。注意,并不是所有的流動性池抵押都有該風險,由于第2524行代碼,pool的ticket需要為零地址才能夠通過該檢查。
但是攻擊者通過控制執行邏輯,實際執行的邏輯為:第2505,2506行將攻擊者指定的1枚UGT、1枚UBT代幣轉入ParaProxy合約。然后在第2535行代碼用于添加流動性,并在第2537行檢查添加的流動性代幣數量。
此時,vars.oldBalance為初始流動性代幣數量。攻擊者為了通過第2537行的檢查,在添加流動性的過程中,進行了重入攻擊。由于在添加流動性時調用了攻擊者構造的惡意代幣的transferFrom函數,攻擊者在transferFrom函數中才將流動性通過deposit函數存入ParaProxy合約。這也是第2步時攻擊合約將流動性代幣接收地址指定為UBT合約的原因所在。
在重入過程中,UBT合約存入了真正的LP代幣222枚,并計入ParaProxy的賬本中。在重入完成后,ParaProxy合約地址新增了222枚LP代幣,ParaProxy合約將其視為攻擊合約添加的LP,并計入賬本中。至此,UBT合約和攻擊合約都新增了222枚LP的存取記錄。
圖3ParaImpl合約相關代碼
重入相關過程如下圖所示:
圖4攻擊流程示意圖
5.UBT合約和攻擊合約分別調用withdraw函數,從ParaProxy合約提取221枚LP,并歸集到攻擊合約,由攻擊合約將LP移除流動性并獲取對應的BSC-USD以及BUSD
6.歸還閃電貸225枚BSC-USD,225枚BUSD,并將獲利的221枚BSC-USD、225枚BUSD發送到攻擊者地址。整個攻擊交易執行完成。
#2總結建議
攻擊者一共執行了約40次攻擊,共獲利約170萬美元。截止發稿時,攻擊者通過跨鏈協議將其轉到以太坊網絡中,并將其中的660枚ETH轉入Tornado.Cash,另外5枚ETH轉入了0xDd52CE617cAF1b7C8cEaCC111DE2f1c54E20C1b0地址。
本次攻擊主要由合約代碼中存在邏輯缺陷以及存在資金操作的關鍵函數未進行防重入導致。建議合約開發者在開發過程中進行完整的測試以及第三方審計,并養成使用Openzeppelin庫的ReentrancyGuard合約來進行重入攻擊的防范。
原標題:《Web3.0程序該跑在哪里?》 作者:宋嘉吉任鶴義 摘要 Web3.0時代,互聯網底層不會全部基于區塊鏈構建,數據計算也不會全部跑在公鏈的“獨木橋”上.
1900/1/1 0:00:00如今,圍繞區塊鏈應用的初始炒作以及隨后的漫長區塊鏈“寒冬”已經落幕,現在正值區塊鏈的“春天”,這個時期有利于企業重新構想它們該如何交付價值.
1900/1/1 0:00:003月12日,NFT項目BoredApeYachtClub母公司YugaLabs宣布正式收購CryptoPunks和Meebits.
1900/1/1 0:00:00來源:澎湃新聞 作者:胡逸,無錫市大數據管理局局長在上一篇文章《虛擬人,第一批元宇宙的原住民來了》中,我羅列了當前虛擬人的兩個大類以及大類下的幾個小類.
1900/1/1 0:00:00原文作者:Kevin?Tai本文為Linear?Finance聯合創始人Kevin?Tai發表在《Cointelegraph》上的觀點文章,以下為全文翻譯.
1900/1/1 0:00:00來源:《美妝頭條》新媒體 作者:姚立凡 隨著AR、5G等技術的發展,元宇宙不再是紙上談兵。元宇宙作為虛擬世界和現實世界融合的載體,蘊含著社交、內容等場景的運用變革機遇,給品牌帶來了新的展現創意的.
1900/1/1 0:00:00