安全公司:9天前停用的合約,讓黑客有可乘之機?

讓黑客有了可乘之機?

2022年4月2日,成都鏈安鏈必應-區塊鏈安全態勢感知平台輿情監測顯示,Gymdefi的LiquidityMigrationV2合約遭受黑客攻擊,黑客獲利約1,327 WBNB。成都鏈安技術團隊第一時間對事件進行了分析,結果如下。 #1 事件相關信息攻擊交易:0xa5b0246f2f8d238bb56c0ddb500b04bbe0c30db650e06a41e00b6a0fff11a7e5攻擊者地址:0x74298086c94dab3252c5dac979c9755c2eb08e49攻擊合約:0x4e284686fbcc0f2900f638b04c4d4b433c40a345被攻擊合約:0x1befe6f3f0e8edd2d4d15cae97baee01e51ea4a4#2 攻擊流程1. 攻擊者首先從Tornado中提取0.99655 BNB。

2. 攻擊者部署攻擊合約後,首先從WBNB-BUSD (0x58f8…dc16)交易池中藉貸2,400 WBNB到攻擊合約中為後續攻擊步驟做準備。

3. 接著在GYM-WBNB(0x8dc0…91db)交易池中將600 WBNB 兌換成5,942,069.12 GYM,然後添加1730 WBNB和140W GYM到GYM-WBNB交易池中獲得46,106.30 LP代幣。

4. 完成流動性添加後,攻擊者通過攻擊合約調用LiquidityMigrationV2合約中的migrate函數進行遷移。由於LiquidityMigrationV2合約遷移時未查詢GYM和GYMNET代幣實際價格,移除流動性返回的GYM數量直接作為添加流動性的GYMNET數量傳入,攻擊者成功將46,106.30 LP(GYM-WBNB)代幣換成了44,760.25 LP(GYMNET-WBNB)代幣。

5. 之後再移除流動性,將獲得的1,166,737.57 GYMNET兌換成WBNB。最後歸還閃電貸,並將本次攻擊所得約1,327 WBNB發送給自身地址。

#3 漏洞分析本次攻擊主要利用了LiquidityMigrationV2合約中代幣兌換設計漏洞,合約中的migrate函數在進行遷移時,將GYM-WBNB交易池移除流動性時返回的數據直接作為了GYMNET-WBNB交易池中添加流動性時的參數。

攻擊者通過閃電貸借貸大筆資金後,惡意控制了GYM-WBNB交易池中的GYM和WBNB的比例。然後調用migrate函數,將1,400,000 GYM兌換為1,166,737.57 GYMNET。根據攻擊發生時的GYM和GYMNET價格,GYM和GYMNET的比例約為130:1。

根據合約中的交易情況可以看出,合約似乎在9天前就已經停止使用了。但是合約中仍存留大量的GYMNET代幣,這正好給了攻擊者可乘之機。

#4 資金追踪截止發文時,被盜資金還未被攻擊者轉出,1,327 WBNB仍在攻擊地址中:

針對本次事件,成都鏈安在此建議:1. 合約開發時,依賴外部合約數據的合約必須要做好數據的校驗,防止惡意數據對合約造成危害。 2. 項目上線前,一定要選擇專業的安全審計公司進行全面的安全審計,規避安全風險。 3. 項目運行時,管理人員一定要做好項目狀態的監控,合約棄用或出現異常時一定要及時將資金轉移到安全的地址上。

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts