交易
交易
交易
https://bscscan.com//tx/0xe13ec0941580d3c286b46fa6566f20195bdd52b3d65fc7ff4a953a8fc774c6c4
https://bscscan.com//tx/0xe5c89e9ac217e4e16c2399f3597f7b5fbb73b45c1d3360788ee51ea2561def3a
https://bscscan.com//tx/0x8693a95f8481ba02ceaabed8e95b4e1eb8ac589c69c027c96b12ac5295714c3f
交易
攻擊者執行了三筆交易來進行攻擊:0xa1e31b29f94296fc85fac8739511360f279b1976]
攻擊者
攻擊者的地址是[0x1d448e9661c5abfc732ea81330c6439b0aa449b5攻擊合約
攻擊合約是[
被攻擊合約是[0x839b0afd0a0528ea184448e890cbaaffd99c1dbf攻擊步驟
攻擊步驟
攻擊步驟
攻擊步驟
攻擊者利用了V 3 Migrator 合約中的一個缺陷,使他們能夠篡改遷移函數的參數,攻擊步驟如下:
攻擊者燒毀了受害者的V 2 LP 代幣,並用假代幣添加了V 3 流動性。在這一步,V 2 LP 的token 0 和token 1 仍然在V 3 Migrator 合約中;
根本原因
攻擊者燒毀了假的V 2 LP 代幣,並用V 2 LP 的token 0 和token 1 添加了V 3 流動性, 沒有用於添加V 3 流動性的多餘的token 0 和token 1 被轉回給了攻擊者。同時,這一步中的V 3 流動性也屬於攻擊者。
根本原因
造成攻擊的根本原因是Biswap 的V 3 Migrator 合約在從Biswap V 2 遷移到Biswap V 3 時沒有驗證參數。具體來說,合約中有一個重要問題:
Key Code

合約沒有驗證token 0 和token 1 參數是否與V 2 LP 代幣中的實際代幣相匹配
這個問題使得攻擊者能夠向遷移函數傳遞假代幣和數量,並從授權了LP 代幣給V 3 Migrator 合約的用戶那裡竊取真實代幣。
受損資產
攻擊者[0xa1e31b29f94296fc85fac8739511360f279b1976] 非法獲取了高達14 萬美元的資產

資金流向

PoC
https://github.com/SunWeb3Sec/DeFiHackLabs/blob/main/src/test/Biswap_exp.sol
安全建議
結論https://bscscan.com/tokenapprovalchecker
結論
結論
結論
Biswap 的攻擊事件是一個典型的例子,假代幣攻擊充分利用BSC 上的DEX 漏洞收割用戶和項目方的資金。該攻擊也突顯了驗證處理用戶資金的合約的參數和余額的重要性,用戶在授權代幣給第三方合約時也應該小心謹慎,並在使用之前檢查合約的源代碼和審計報告。作為對此次攻擊事件的回應,Biswap 也很快採取了2 個應對策略:

盡快要求用戶撤銷對V 3 Migrator 合約的授權,這樣攻擊者就無法再訪問他們的LP 代幣;


