🎉 Gate xStocks 交易開啓啦,現貨、合約、Alpha齊上線!
📝 在Gate廣場發帖,曬出你的交易體驗或精彩截圖,瓜分$1,000大獎池!
🎁 廣場優質創作者5名,每人獨享$100合約體驗券!
🎉 帖文同步分享到X(推特),瀏覽量前十再得$50獎勵!
參與方式:
1️⃣ 關注 @Gate廣場_Official
2️⃣ 帶 #Gate xStocks 交易体验# ,原創發帖(不少於20字,僅用活動標籤)
3️⃣ 若分享到推特,請將連結提交表單:https://www.gate.com/questionnaire/6854
注:表單可多次提交,發布更多帖文可提升獲獎機會!
📅 7月3日16:00—7月9日24:00(UTC+8)
詳情:https://www.gate.com/announcements/article/45926
每一條體驗,都有機會贏取大獎!快在Gate廣場show出你的操作吧!
OrionProtocol遭受290萬美元重入攻擊 細析攻擊過程與防範建議
OrionProtocol遭遇重入攻擊事件分析
2023年2月2日,OrionProtocol在以太坊和幣安智能鏈上遭遇重入攻擊,導致約290萬美元的損失。攻擊者利用合約漏洞,在以太坊鏈上竊取了2,844,766 USDT,在幣安智能鏈上竊取了191,606 BUSD。
攻擊過程
攻擊者首先創建了一個自定義Token合約,並進行了相關的轉移和授權操作。隨後,攻擊者通過某DEX的swap方法借款,並調用ExchangeWithAtomic.swapThroughOrionPool方法進行代幣兌換。兌換路徑包含了攻擊者創建的Token合約地址。
在兌換過程中,由於攻擊者的Token合約中存在回調機制,攻擊者能夠通過Token.Transfer繼續回調ExchangeWithAtomic.depositAsset方法,從而實現重入攻擊。這導致存款金額被重復累加,最終攻擊者通過取款操作完成了獲利。
資金流向
攻擊者的初始資金來自某交易平台的熱錢包帳戶。在獲利的1,651枚ETH中,657.5枚仍留在攻擊者的錢包地址中,其餘部分已通過混幣服務進行了轉移。
漏洞分析
漏洞的核心問題出現在doSwapThroughOrionPool函數中。該函數調用了_doSwapTokens函數,而後者在轉帳操作後更新curBalance變量。攻擊者利用自定義Token的transfer函數中添加的回調功能,在curBalance更新前再次調用depositAsset函數,導致curBalance錯誤更新。最終,攻擊者在償還閃電貸後,通過withdraw函數提取了額外的資金。
防範建議
爲防止類似攻擊,建議項目方在設計合約時注意以下幾點:
通過採取這些措施,項目可以顯著提高合約的安全性和穩定性,最大限度地降低遭受攻擊的風險。