2022年3月13日,成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,Paraluni合約遭受攻擊,損失約170萬美元,成都鏈安技術團隊對此事件進行了相關分析。
#1總述
我們以第一筆攻擊交易0xd0b4a1d4964cec578516bd3a2fcb6d46cadefe1fea5a2f18eec4c0a496e696f9為例:
地址列表
攻擊地址:
0x94bC1d555E63eEA23fE7FDbf937ef3f9aC5fcF8F
攻擊合約:
0x4770b5cb9d51EcB7AD5B14f0d4F2cEe8e5563645
ParaProxy:
SyncSwap中文號及其運營者因發表空投相關言論遭項目方棄用:4月10日消息,SyncSwap 中文號及其運營者發布項目空投相關信息,其中提到 Token 分配中空投與交易激勵是分開的,其中空投份額為總量的 15%,但目前官方的 Token 經濟學文檔已經設置權限而無法查看。
隨后,該賬號表示將不會再更新任何推文,即該中文推特被棄用。[2023/4/11 13:55:13]
0x633Fa755a83B015cCcDc451F82C57EA0Bd32b4B4
ParaImpl:
0xA386F30853A7EB7E6A25eC8389337a5C6973421D(MasterChef)
UGT:
0xbc5db89CE5AB8035A71c6Cd1cd0F0721aD28B508
Amber Group:Mai Finance金庫曾存在嚴重重入漏洞,項目方已部署新預言機合約:金色財經報道,Amber Group發文稱,其區塊鏈安全團隊于10月18日在零利率貸款協議Mai Finance的兩個金庫(SCSEMVT和YCSEMVT)中發現一個嚴重重入漏洞。該漏洞將允許攻擊者操縱抵押品價格,從池中借入所有資金并提走資金。
Amber Group在10月19日聯系QiDao團隊后,QiDao在10月20日提出解決方案并部署一個新的預言機合約。[2022/12/21 21:57:13]
UBT
0xcA2ca459Ec6E4F58AD88AEb7285D2e41747b9134
1.向CakeSwap(0x7EFaEf62)中通過閃電貸借貸224BSC-USD,224BUSD
BSC鏈上托管平臺Justcows疑似跑路,項目方已轉移500萬美元資金:6月24日消息,據推特用戶@eternal1997L的推文,BSC鏈上的托管平臺Justcows疑似跑路,項目方將大量的BUSD通過混幣的形式,分散到了至少上萬個地址里,其中部分資金轉到了hunterswap,還有一部分進了交易所。據悉,該平臺1個月前曾發布公告,停止用戶提現。據悉,Justcows卷走了500萬美元的用戶資金。
項目方錢包地址疑似0xb619571786E069c635605A175D7B668bD74ae6a5。[2022/6/24 1:28:27]
2.把第1步借到的代幣向Para-LP(0x3fD4FbD7)中添加流動性,并將獲得的222枚流動性代幣的接收地址指定為UBT(0xcA2ca459)地址,這一步是為了后續的重入做準備。
公告 | BitZ與SWFT Blockchain 聯合為項目方提供上線服務:BitZ與SWFT Blockchain正式達成合作,雙方將聯合為項目方提供一站式上線服務,包括錢包、閃兌、聚合交易、法幣一鍵購買、發數字貨幣紅包、用數字貨幣支付等。
BitZ是著名的區塊鏈資產交易平臺之一,擁有行業最齊全產品線,可提供幣幣交易、法幣交易、杠桿交易、合約交易、理財產品等多樣化金融服務,據CoinMarKetCap實時數據顯示,BitZ24小時交易量超19億美金,排名全球第五。
SWFT Blockchain 是最大閃兌平臺之一,SWFT聚合交易匯聚幣安、火幣、OKEx等全網深度,智能下單,極速交易。SWFTC速幣是SWFT 的平臺幣,已上線火幣、OKEx等。[2020/2/7]
圖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的報道通常都聚焦在近期火爆的NFT銷售和每日cryptocurrency價格波動上。但是這只不過是冰山一角,真正的Web3遠不止如此.
1900/1/1 0:00:00Polkadot生態研究院出品,必屬精品波卡一周觀察,是我們針對波卡整個生態在上一周所發生的事情的一個梳理,同時也會以白話的形式分享一些我們對這些事件的觀察.
1900/1/1 0:00:00Bitfinex委任GilesDixon為授權部主管Bitfinex近日委任GilesDixon為授權部主管,他將在Bitfinex獲得全球多個司法管轄區的監管批準和牌照方面發揮主導作用.
1900/1/1 0:00:00“一樣東西不按照你的計劃行事,并不意味著它就毫無用處。”——托馬斯·愛迪生 互聯網再次發生變化。 在過去的十年中,基于互聯網的服務趨向于集中化.
1900/1/1 0:00:00科學數據的語料庫是分散的、受訪問控制的,它們的迅速增長已經超出了中心化服務的維護能力。點對點技術的最新發展使得建立一個對所有人開放的永久科學記錄檔案成為可能.
1900/1/1 0:00:00愿景:去中心化私鑰 Qredo的設計理念植根于認識到困擾加密市場的兩個最重要的問題——安全性差和流動性分散——源于一個怪癖:私鑰的集中管理。這使得機構難以進入生態系統,并啟用了廣泛的黑客目錄.
1900/1/1 0:00:00