零时科技 || LI.FI 攻击事件分析

  • 事件概述:2024年7月16日,以太坊链上的聚合协议LI.FI遭受攻击,攻击者通过构造恶意参数盗取227万USDT(约227万美元)。
  • 攻击手法
    • 攻击者调用depositToGasZipERC20函数,利用其内部LibSwap.swap功能,通过精心设计的SwapData参数操控合约行为。
    • 关键漏洞在于协议未严格校验输入参数,导致攻击者可强制合约调用USDT的transferFrom函数,将授权代币转入其控制地址。
  • 技术细节
    • 攻击者传入的inputData包含伪造的transferFrom签名(0x23b872dd),劫持合约权限完成转账。
  • 安全建议:项目方需加强参数校验,并采用多审计方交叉审计以降低风险。
总结

零时科技 || LI.FI 攻击事件分析

背景介绍

2024年7月16日,我们监控到了一笔Ethereum上的攻击事件,https://etherscan.io/tx/0xd82fe84e63b1aa52e1ce540582ee0895ba4a71ec5e7a632a3faa1aff3e763873

被攻击的协议为LI.FI Protocol,LI.FI Protocol是一个聚合协议。此次攻击中,攻击者共获利2,276,295 USDT折合227万USD

攻击及事件分析

首先,攻击者查询了地址0xabe45ea636df7ac90fb7d8d8c74a081b169f92ef的USDT余额,和该地址对余额对于LI.FI Protocol可以花费的额度。接着,攻击者调用了depositToGasZipERC20这个函数

零时科技 || LI.FI 攻击事件分析

我们可以看到上述函数的具体代码实现,如下图:

零时科技 || LI.FI 攻击事件分析

我们可以看到,在函数depositToGasZipERC20中调用了LibSwap.swap函数,具体代码如下:

零时科技 || LI.FI 攻击事件分析

其中SwapData的结构如下

零时科技 || LI.FI 攻击事件分析

我们可以看到,只要控制了swap函数的参数_swap,既可以利用LI.FI Protocol合约调用任意合约,传入任意参数。我们可以看到,攻击者传入的参数为:

零时科技 || LI.FI 攻击事件分析

根据SwapData的数据结构,我们可以看到,攻击者利用传入的参数调用了合约0xdac17f958d2ee523a2206206994597c13d831ec7: callTo(USDT),传入的inputData为:

零时科技 || LI.FI 攻击事件分析

由于0x23b872dd为transferFrom的signature,根据该函数的参数解析的数据为:

零时科技 || LI.FI 攻击事件分析

相当于利用LI.FI Protocol,从0xabe45ea636df7ac90fb7d8d8c74a081b169f92ef将2276295880553 USDT转给了0x8b3cb6bf982798fba233bca56749e22eec42dcf3,至此,攻击者完成了攻击。

总结

本次漏洞的成因是被攻击合约对攻击者传入参数校验不严格,导致攻击者可以通过构造特殊inputData来使受害者合约调用任意合约并传入任意参数。最终,攻击者利用特殊的参数,使得受害者合约通过transferFrom将授权给其合约的代币转入到攻击者控制的地址。建议项目方在设计代码运行逻辑时要多方验证,合约上线前审计时尽量选择多个审计公司交叉审计。

分享至:

作者:零时科技

本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。

文章及观点也不构成投资意见

图片来源:零时科技如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊
推荐阅读
28分钟前
4小时前
8小时前
2026-01-21 10:10
2026-01-21 10:00
2026-01-21 03:17

热门文章

行业要闻
市场热点
精选读物

精选专题

App内阅读