Feminist Metaverse被攻擊事件分析
2022年5月16日,成都鏈安鏈必應-區塊鏈安全態勢感知平台輿情監測顯示,Feminist Metaverse的FmToken合約遭受黑客攻擊,黑客獲利約1838 WBNB(約54萬美元)。據悉,Feminist Metaverse 是一個基於BSC上的DAO項目,成都鏈安技術團隊第一時間對事件進行了分析,結果如下。
#1 事件相關信息
攻擊交易(此處只列舉出第一筆攻擊交易,本次事件中攻擊者反復進行了多次操作)
0xfdc90e060004dd902204673831dce466dcf7e8519a79ccf76b90cd6c1c8b320d
攻擊者地址
0xaaA1634D669dd8aa275BAD6FdF19c7E3B2f1eF50
攻擊合約
0x0B8d752252694623766DfB161e1944F233Bca10F
被攻擊合約
0x843528746F073638C9e18253ee6078613C0df0f1
#2 攻擊流程
第一步,攻擊者地址直接通過SakeSwapPair合約的skim函數領取中未記入流動性池的FM_Token,可能也是在此時意識到FM_Token合約中的漏洞;
第二步,部署攻擊合約,用於加快提取FM_Token的速度;
第三步,向攻擊合約轉入10 FM_Token,為後續攻擊做準備;
第四步,調用攻擊合約,循環轉出FM_Token到攻擊者地址,觸發將FM_Token合約中FM_Token代幣的轉移到SakeSwapPair的操作,並最後通過skim函數提取到攻擊者地址,細節如下:
(1)多次用創建的攻擊合約0x0B8d…a10F給自己的地址轉賬小額的FM token。
(2)由於FM_Token合約餘額已達到向SakeSwapPair轉賬的標準的15萬token,每一次轉賬會觸發920行增加SakeSwapPair的FM token的balance。 SakeSwapPair因此出現了token balance和reserve之間的差值。
(3)攻擊者隨後調用了SakeSwapPair中的skim()函數,將差值的token balance提取到自己的地址。
第五步,用pancakeswap把FM token換成BNB。
最後,重複第4步和第5步,並將最終獲利的1838個BNB轉入Tornado.Cash
#3 漏洞分析
本次攻擊主要利用了直接給SakeSwapPair增加餘額,但是沒有寫入SakeSwapPair的賬本,攻擊者通過多次轉賬,將FM_Token合約地址持有的幣轉移到SakeSwapPair合約中,在整個過程中SakeSwapPair自身的賬本中並沒有記錄轉入的代幣,導致攻擊者直接通過skim把對應的幣轉移到自己賬戶下,然後再賣出獲利。
#4 資金追踪
截止發文時,截止發文時,被盜資金1838個BNB已經轉入Tornado.cash。
#5 總結
針對本次事件,成都鏈安技術團隊建議:
項目開發時,1 不要直接向Pair合約轉賬;2將非標準代幣接入Pair時,應充分考慮代幣自定義功能可能對Pair合約產生的影響;3 建議項目上線前選擇專業的安全審計公司進行全面的安全審計,規避安全風險。
展開全文打開碳鏈價值APP 查看更多精彩資訊