全球数字财富领导者

狸猫换太⼦ BISwap LP迁移池受攻击简介

2023-07-01 23:27:24
金色财经
金色财经
关注
0
0
获赞
粉丝
喜欢 0 0收藏举报
— 分享 —
摘要:未验证迁移者就是交易发起者,导致任意⼈都可以替别⼈进⾏迁移。

攻击⽅法:

迁移合约少了两个验证:

未验证迁移者就是交易发起者,导致任意⼈都可以替别⼈进⾏迁移。

未验证参数中的两种代币和Pair为真实的。导致攻击者可以伪造token0、token1及Pair的⽅式进⾏攻击。

攻击者⾸先通过真实的pair和假的token0,token1,调⽤迁移合约的迁移函数,将⽤户的LP燃烧后的资产留在合约中,⽤户添加的只是两种假代币组成LP池。然后攻击者再通过真实的token0,token1及假的LP,调⽤迁移合约的迁移函数,将第⼀步留在合约中的资产添加为⾃⼰的LP。

这样通过狸猫换太⼦的⽅式将⽤户的资产替换成假的LP资产,⽽真实的LP资产添加到了攻击的的LP中。

所有相关地址⼀览

攻击者: 0xe3aeede563bc6a72dc881755cc98dc57fadf30f6

攻击合约:0x2a825a174c3125923881d33e922c7a5e56c9b833

受害者: 0x5bf1d91ee070a8e8b8f4d1810bb43bc201f8a276

LP 合约:0x5dc30bb8d7f02efef28f7e637d17aea13fa96906

迁移合约 0x839b0afd0a0528ea184448e890cbaaffd99c1dbf

代币XRP:0x1D2F0da169ceB9fC7B3144628dB156f3F6c60dBE

代币WBNB: 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c

新LP管理器:0x24Ba8d2A15Fe60618039c398Cf9FD093b1C1FEB5

假代币A: 0x43a0e0f079aec79bcd200170c65b06bef3996b65

假代币B: 0xcb02d1dcf608c42fb6ac8c63817cfa14da0b3f57

BiswapFactoryV3:0x7c3d53606f9c03e7f54abddffc3868e1c5466863

新Pool: 0x577BA33be1D7a8E889B999125eFbe0165cdE40e8

其中⼀笔攻击交易:0xa6cc4b18dea57fae6e1d63d493d2bfb4fd07e86a1ab7f545f9c7980d897d7a6c

攻击交易简要过程:

1、攻击者调⽤攻击合约

2、攻击合约查询受害者 LP 余额,及对迁移合约的授权情况

3、攻击合约调⽤迁移合约的migrate函数

4、migrate函数正常⼯作,将受害者的LP转⾄并burn

6、migrate函数调⽤LP管理器添加LP(因为代币是假的,所以真实代币并未添加)

7、migrate函数,内返还代币给⽤户(也是假的)

8、攻击合约查询LP真实代币token0和token1

9、攻击合约调⽤ BiswapFactoryV3 的 Pool函数进⾏查询,得到0地址(三种费率都是0)

10、查询得到第四种fee率的地址,也就是新Pool

11、攻击合约查询两种真实token在迁移合约中的余额(前⾯受害者 burn 部分)

12、 攻击合约再次调⽤ migrate 函数。这次使⽤假的LP,但是使⽤真实的token.其实假的LP就是攻击合约本身。

因为合约中已经有上次受害者的两种代币了。指定接收者为⾃⼰。因此可以将合约中的资产偷⾛。

来源:金色财经

敬告读者:本文为转载发布,不代表本网站赞同其观点和对其真实性负责。FX168财经仅提供信息发布平台,文章或有细微删改。
go