Team Finance 被黑分析|黑客自建 Token“瞒天过海”,成功套取 1450 万美元


2022 年 10 月 27 日,据欧科云链链上卫士安全团队监测,ETH 链上的 Team Finance 项目遭受黑客攻击,事故原因除攻击中的合约漏洞外,Uniswap V3 的迁移合约实施不严谨或是造成损失的主因之一。
编辑|小 O
分析|链上卫士团队
10 月 27 日,成立于 2020 年的 Team Finance 在官方 Twitter 发声,该协议管理资金在由 Uniswap v2 迁移至 v3 的过程中遭到黑客攻击,损失达 1450 万美元。
在事件发生后的第一时间,欧科云链链上卫士团队凭借超 200TB 的链上数据量储备,快速对黑客地址进行数据追踪、手法解析,并及时通过官方渠道反馈 Team Finance 分析结果,避免链上损失态势进一步扩大。

图片源:Twitter

Team Finance 安全事件复盘
据悉,此次攻击最早发生于 2022 年 10 月 27 日 07:22:35,黑客通过创建攻击合约并创建一个攻击 token,随后通过执行攻击合约进行 lockToken 调用,并于 08:29:23 执行合约并发起攻击交易。

图片源:OKLink 制图
据链上卫士安全团队分析,此次受到攻击的项目方 Uniswap V2 池子有 CAW(1150 万美元 )、TSUKA(170 万美元)、KNDX(70 万美元)、FEG(190 万美元)。
依托于区块链链上数据可溯源、不可篡改的特性,链上卫士团队将链上追踪结果以图表的方式展现,通过黑客资金流向图,用户可清晰地了解黑客盗取资金后的动态。

图片源:OKLink 制图

Team Finance 黑客手法复盘

攻击交易整体流程
#Step1:
攻击者通过 Team Finance 的 Proxy 合约输入攻击参数:
准备盗取资金的对象:即需要迁移的币对 FEG-WETH
而取回的币对却是黑客创建的无价值的 token0: 0x2d4abfdcd1385951df4317f9f3463fb11b9a31df 和 有价值的 token1: WETH
两者的不一致,是导致该合约被攻击的根本原因!
在这一步中,黑客首先通过 lockToken 锁仓攻击 token,lockedToken 变量会记录锁仓详细信息,其中关键字段为 withdrawAddress,该字段存在可以满足后续 migrate 的权限判断。

#Step2:
由于上述 LP 和输入参数的 token 不匹配,且 noLiquidity 参数为 true,所以会在 Uniswap V3 中创建一个 token0 和 WETH 的流动性池。
#Step3:
Uniswap V3 调用 v3Migrator.migrate 方法,迁移 FEG-WETH 流动性对。
在这一步中,Uniswap V3 Migrator 合约在接收到 Team Finance 中传入的参数,会迁移 Uniswap V2 的 LP,燃烧 LP,获取底层资产 $FEG 和 $WETH,根据转换参数只有 1% 进入 V3 pool,其余 99% 退还给发送合约,Team Finance 将返回到 token(601 个 ETH)发送给攻击合约。

Step 3 步骤拆解
黑客调用 Team Finance 得合约进行 LP 迁移,利用 Step 1 中准备好的 withdrawAddress 和 msgSender 吻合,通过权限检查。

由于 Team Finance 的迁移逻辑没有检验交易 id 与 migrate params 的相关关系,黑客通过上面校验后,真正迁移的是黑客输入的 params 参数。
该参数指定的 migrate 为与黑客锁仓 token 无任何关系的 FEG-WETH 交易对,且迁移数量为 Team Finance 持有的全部 LP(FEG-WETH),但参数指定只 migrate 1%。

#Step4:
此外,相同手法对其它 3 个流动性池进行了攻击:


Team Finance 事件总结
截至发稿前,黑客已返还涉事的四种 Token 以及 $ETH 和 USDC 到相关项目方,共计约 1340 万美元。
此次攻击事件,漏洞的本质原因是对输入参数的校验逻辑有问题。黑客通过锁仓毫无价值的 token,获取了调用 migrate 接口的权限。进一步调用 Uniswap V3 的 migrate 的参数,完全由黑客输入,导致可以从其合约内迁移其他 LP 资产,结合 Uniswap V3 的 migrate 处理是首先燃烧所有 LP 资产,再按照输入的 percentage 进行迁移,并返还剩余资产,使得黑客可以通过只迁移 1% 资产,从而窃取剩余 99% 的资产。
总而言之链上安全无小事,欧科云链再次提醒:重要函数的参数校验要仔细。建议在项目上线前,选择类似链上卫士的专业安全审计团队进行全方位审计筛查,最大化规避项目上线后的安全风险。
更多链上数据
锁定 www.oklink.com
/
/
/

点击“阅读原文”,进一步了解链上卫士
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
来源链接

