2022年3月13日,成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,Paraluni合約遭受攻擊,損失約170萬美元,成都鏈安技術團隊對此事件進行了相關分析。
#1總述
我們以第一筆攻擊交易0xd0b4a1d4964cec578516bd3a2fcb6d46cadefe1fea5a2f18eec4c0a496e696f9為例:
地址列表
攻擊地址:
0x94bC1d555E63eEA23fE7FDbf937ef3f9aC5fcF8F
攻擊合約:
0x4770b5cb9d51EcB7AD5B14f0d4F2cEe8e5563645
ParaProxy:
安全公司:NFT項目方 Akutar項目存在兩個漏洞,導致項目方3400 萬美元被永久鎖定:金色財經消息,4月23日消息,BlockSec發推表示,經過分析后發現,該項目存在兩個漏洞。第一個漏洞是在ProcessRefunds的時候,攻擊者可以利用惡意合約對項目進行拒絕服務,所有用戶的退款都會被拒絕。幸運的是這個漏洞沒有被利用。第二個漏洞是在項目方取款的時候,由于一個變量名寫錯,導致項目方取款的條件永遠不會滿足,而該合約是不可以升級合約,因此項目方價值3400萬美金的資金被永遠鎖定。[2022/4/23 14:43:44]
0x633Fa755a83B015cCcDc451F82C57EA0Bd32b4B4
ParaImpl:
0xA386F30853A7EB7E6A25eC8389337a5C6973421D(MasterChef)
Go Pocket開發者:ERC721R存在嚴重Bug,NFT項目方仍可RugPull:4月12日消息,據GoPocket核心開發者BenLaw發推稱,ERC721R代碼段存在嚴重Bug,由于缺少對退款接收地址的限制條件,開發者可通過bug,在ERC721R的限制期內抽走NFT合約中的資金,進而繞開該協議的約束,實現RugPull。[2022/4/12 14:20:04]
UGT:
0xbc5db89CE5AB8035A71c6Cd1cd0F0721aD28B508
UBT
0xcA2ca459Ec6E4F58AD88AEb7285D2e41747b9134
1.向CakeSwap(0x7EFaEf62)中通過閃電貸借貸224BSC-USD,224BUSD
Alpha Homora用戶因MEV機器人損失40ETH,項目方將全額賠償并修復問題:10月23日消息,跨鏈 DeFi 協議 Alpha Finance Labs 表示歷史上共有 20 個地址在使用杠桿挖礦協議 Alpha Homora V2 的時候,因為交易被 MEV 機器人發現而損失總共 40.93 ETH。Alpha Finance 表示將以 ALPHA 代幣的形式全額賠償這些損失。對于該問題,Alpha Finance 認為是 Uniswap V2 的智能合約有隱含假設(implicit assumptions),這些假設未在合約層面上明確說明,所以他們認為這會導致滑點未被檢查。Alpha Finance 表示會修復該問題,在交易時進行檢查,所以這些情況將不再發生,安全審計機構 OpenZeppelin 和 Peckshield 也已經確認了該修復方案。[2021/10/23 6:09:30]
2.把第1步借到的代幣向Para-LP(0x3fD4FbD7)中添加流動性,并將獲得的222枚流動性代幣的接收地址指定為UBT(0xcA2ca459)地址,這一步是為了后續的重入做準備。
共為2020 |太壹科技CMO孟春東:交易所項目方將進入下一階段的競爭:金色財經現場報道,2020年6月21日,由金色財經主辦的共為2020·區塊鏈創新應用論壇在深圳拉開帷幕。太壹科技CMO孟春東在發言中指出,“區塊鏈行業的發展已逐步進入深水區,圍繞各個場景的產品線日趨豐富,尤其數字資產交易平臺的市場已逐步從藍海過渡到紅海市場,下一步交易所項目方將進入到比拼品牌實力、用戶需求定制、創新模式玩法等階段。為應對行業新趨勢,太壹科技于今年啟動品牌升級戰略,圍繞技術迭代、產品線、國際化、定制化等方向進行全方位提升,努力實現躋身行業第一陣營的目標,成為區塊鏈行業的技術標桿。”[2020/6/22]
圖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合約來進行重入攻擊的防范。
前言 在我上一篇文章之后,我收到了很多關于DAO的問題。在Twitter上,加入一個DAO,參加會議,等待任務,獲得獎勵。這個流程看起來很容易。但這真的那么容易嗎?讓我們來探討一下.
1900/1/1 0:00:003月19日,由ByzantineDAO(亞洲社區)主辦,AMMGLOBALMEDIALTD(亞洲心動娛樂)、MetaLife、BitkubCapitalCo.Ltd及CryptoPennyHun.
1900/1/1 0:00:00Bitfinex希望薩爾瓦多的「比特幣債券」只是其平臺上眾多代幣化產品之一金色財經消息,Bitfinex希望薩爾瓦多的「比特幣債券」只是其平臺上眾多代幣化產品之一.
1900/1/1 0:00:00“現有的學術期刊系統已經千瘡百孔。這篇文章我們討論了潛在的解決方案,包括我們需要什么樣的期刊,以及web3技術帶來的新的可能.
1900/1/1 0:00:002022年3月27日,成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,DeFi協議RevestFinance遭到黑客攻擊,損失約12萬美元.
1900/1/1 0:00:00“波卡知識圖譜”是我們針對波卡從零到一的入門級文章,我們嘗試從波卡最基礎的部分講起,為大家提供全方位了解波卡的內容,當然這是一項巨大的工程,也充滿了挑戰.
1900/1/1 0:00:00