背景介紹
four.meme是一個Binance Academy 孵化的一個類似pump.fun 的memecoin launchpad 。平台遭受遭受駭客攻擊。損失約180,000 USD 。攻擊交易為:
https://bscscan.com/tx/0xd9177f643e29fea98a609a9a82cd97bb843f914e3eddf4fbaa6f0da7b5824f3d
攻擊及事件分析
背景知識在先前的分析中已經詳細描述,具體詳情可以訪問先前的文章查看。
攻擊步驟1:
攻擊交易hash為:
https://bscscan.com/tx/0x5a3abc55b60fbf73f186e153293325feaf06945f9033b7a11f07da6ff72554e4
在步驟1中,攻擊者利用buyTokenAMAP 將指定的token 轉給尚未建立的PancakeSwap PairWBNB-MubaraKing ,buyTokenAMAP 的描述如下:
可以看到,函數可以用BNB 和BEP20 Token 為指定地址購買meme coin 。攻擊者使用buyTokenAMAP 的原因主要是因為當Token 在內盤交易時,無法透過transfer 自由轉帳。而且,由於PancakeSwap Pair 的地址是可預測的,所以攻擊者提前算好了PancakeSwap PairWBNB-MubaraKing 的地址。導致攻擊者在專案移轉到DEX 前就完成了向Pair 轉帳meme coin 的操作。
我們可以看到,這筆交易所在的區塊為47556809 ,區塊時間為2025-03-17 22:54:53 (UTC) 。
攻擊步驟2:
攻擊交易hash為:
https://bscscan.com/tx/0xf5d95531a1dd612f5e1c65b513d227360a66287e35f67e6e04a97321d3faae14
https://bscscan.com/tx/0xd9177f643e29fea98a609a9a82cd97bb843f914e3eddf4fbaa6f0da7b5824f3d
當Token在內盤完成交易目標,即Bonding Curve Process 達到100% 會將內盤遷移到PancakeSwap 上,即外盤。攻擊者利用MEV 進行sandwich 攻擊,將遷移交易夾在中間,透過向Pair 添加流動性,再等官網添加完流動性後便撤回流動性,再將手中的MubaraKing 兌換為WBNB 從而獲取巨額利潤。
在攻擊交易1中,攻擊者透過PancakeSwap Factory 創建了PancakeSwap Pair WBNBMubaraKing,由於在攻擊步驟1中,已經利用buyTokenAMAP 向這個Pair 中轉入了MubaraKing ,所以此時Pair 的MubaraKing 的餘額為4,620,000,000,000
隨後,攻擊者又轉入87.9 WBNB ,使用mint 取得LP Token 完成提前添加流動性。
在攻擊交易2中,攻擊者先利用burn 撤回自己添加的流動性,獲得了87.9 WBNB 和157,784,147,190,821,450,996,866,034 MubaraKing ,
隨後,利用PancakeSwap 將手中的MubaraKing 兌換為20 WBNB ,最終完成攻擊。
這些交易的區塊號碼為47561733 ,區塊時間為2025-03-18 03:01:05 (UTC )。
總結
本次漏洞的成因是:
1. 在內盤交易時,可以利用buyTokenAMAP 向沒法發起交易的地址轉賬,繞過了內盤不可transfer 的限制,導致提前添加了流動性。
2. Four.meme 在內盤的bondingcurve process 為100%,向DEX進行遷移時,沒有考慮到已經被提前添加了流動性的情況。導致遷移後隨攻擊者利先撤回提前添加的流動性,再用手中的memecoin 將池子中的WBNB 掏空完成攻擊。建議專案方在設計經濟模型和程式碼運作邏輯時要多方驗證,合約上線前審計時盡量選擇多個審計公司交叉審計。