套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?

随后 Team Finance 在官方推文表示,该平台已在漏洞利用后暂停了所有活动,并敦促黑客「与我们联系以支付赏金」。据悉,Team Finance 及其母公司 TrustSwap 成立于 2020 年,他们主要为项目高管提供代币流动性锁定和归属服务。该协议声称在 12 个区块链中获得了 30 亿美元的担保。

2022 年 10 月 27 日,据 Beosin-Eagle Eye 态势感知平台消息,ETH 链上的 Team Finance 项目遭受黑客攻击。

随后 Team Finance 在官方推文表示,该平台已在漏洞利用后暂停了所有活动,并敦促黑客「与我们联系以支付赏金」。据悉,Team Finance 及其母公司 TrustSwap 成立于 2020 年,他们主要为项目高管提供代币流动性锁定和归属服务。该协议声称在 12 个区块链中获得了 30 亿美元的担保。

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?

Beosin 安全团队通过分析发现黑客通过 LockToken 合约的 migrate 函数的漏洞,将 WTH,CAW,USDC,TSUKA 代币从 V2 流动性池非法升级到 V3 流动性池,并且通过 sqrtPriceX96 打乱 V3 流动池的 Initialize 的价格,从而获取大量 refund 套利。共计套利了约 1300 多万美元。具体分析结果如下:

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?

事件相关信息

攻击交易

0xb2e3ea72d353da43a2ac9a8f1670fd16463ab370e563b9b5b26119b2601277ce

攻击者地址

0x161cebB807Ac181d5303A4cCec2FC580CC5899Fd

0xBa399a2580785A2dEd740F5e30EC89Fb3E617e6E

攻击合约

0xCFF07C4e6aa9E2fEc04DAaF5f41d1b10f3adAdF4

被攻击合约

0xE2fE530C047f2d85298b07D9333C05737f1435fB

攻击流程

1.漏洞函数介绍:被攻击合约 0xE2fE530C047f2d85298b07D9333C05737f1435fB(LockToken 合约)中 migrate 函数支持用户将指定的 Uniswap-V2 流动性迁移到 Uniswap-V3 流动性,会根据迁移后的价格退还部分代币给用户。函数的所有调用判断如下图所示,对锁定 ID,锁定时间,可提取地址都有判断。

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?
migrate 函数条件判断
套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?
migrate 函数退款

2.攻击前的准备:攻击者 0x161cebB807Ac181d5303A4cCec2FC580CC5899Fd 首先部署了攻击合约 0xCFF07C4e6aa9E2fEc04DAaF5f41d1b10f3adAdF4 以及创建了代币合约 0x2d4abfdcd1385951df4317f9f3463fb11b9a31df(代币 A)。

3.攻击者前往 LockToken 合约调用其 lockToken 函数,进行了 4 次锁定,锁定的是自己创建的代币 A,并将提取地址设置为攻击合约地址,获得了 4 枚 NFT 作为凭证(id 为 15324,15325,15326,15327)。

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?
4 次锁定及 NFT 的 ID

lockToken 函数可以锁定用户的代币,并铸造一枚 NFT 代币作为凭证。锁定代币的类型,锁定数量,由谁提取,锁定时间均可以指定。

4.调用 LockToken 合约中的 extendLockDuration 函数,调整每一枚 NFT 代币所对应的锁定时间。至此,准备已经完成。

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?
其中一笔调整锁定时间

5.攻击合约查询 LockToken 合约中的指定 LP 代币的数量,并将返回结果作为攻击参数中的一环。

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?

攻击者调用 migrate 函数,由于事前准备了 NFT 的缘故。migrate 函数关于 id 和锁定时间,提取地址的验证全部被绕过。函数的漏洞一下子暴露出来,验证浮于表面。通过锁定代币 A 获取的 NFT id 竟然可以参与到 FEG-WETH pair 的迁移中,并未检测用户锁定的和正在操作的是否一致,并且与 UNI-V3 迁移价格计算相关的参数 sqrtPriceX96 也是由用户进行输入。

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?
套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?

6.攻击合约使用提前准备的 4 枚 NFT,获得了 WETH,DAI,CAW,TSUKA 这 4 种代币的迁移退款。并将其全部发送到 0xBa399a2580785A2dEd740F5e30EC89Fb3E617e6E 地址。

套利约1300多万美元,嚣张黑客如何套取Team Finance巨额资产?

漏洞分析

本次攻击主要利用了 LockToken 合约中 migrate 函数的漏洞。migrate 的验证容易被绕过且可以操纵迁移时的价格。

资金追踪

截止发文时,被盗资金 880.258 个 ETH,642,9327.6 个 DAI,74,6136,5757,7043 个 CAW,1183,7577.7TSUKA,总价值约 1300 万美元,通过 Beosin Trace 追踪发现目前被盗资金还在攻击者地址 0xBa399a2580785A2dEd740F5e30EC89Fb3E617e6E 中。

事件总结

针对本次事件,Beosin 安全团队建议:重要函数的参数校验一定要仔细,尤其是用户可控的参数。项目上线前,建议选择专业的安全审计公司进行全面的安全审计,规避安全风险。

(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)

(0)
上一篇 2022年10月29日 下午2:33
下一篇 2022年10月29日 下午3:03

相关推荐

发表回复

登录后才能评论
微信

联系我们
邮箱:whylweb3@163.com
微信:gaoshuang613