【深入解读】FTX交易所免手续费漏洞致使被薅20W刀XEN的羊毛案

  • 事件概述:FTX交易所因免手续费提币漏洞被黑客利用,通过智能合约回调攻击铸造大量XEN代币,导致损失108+个ETH(约24万美元),涉及38名攻击者。

  • XEN背景:XEN是一种通过消耗Gas铸造的代币,缺乏长期价值但凭借高Gas消耗量成为以太坊生态交易量Top1项目。

  • 漏洞原理:黑客利用FTX免费提币功能,部署攻击合约,通过智能合约的fallback函数触发XEN合约的Mint函数,将代币转入指定地址。

  • 攻击流程

    1. 部署攻击合约并设置XEN合约地址及收益地址。
    2. 利用FTX免费提币功能,使FTX热钱包向攻击合约发起转账。
    3. 转账触发fallback函数,调用XEN合约的Mint函数铸造代币并转入黑客地址。
  • 技术复现:文章通过简化代码示例演示了攻击逻辑,包括ERC20代币合约和攻击合约的实现。

  • 影响与风控:FTX已通过人工审计封禁攻击者,但事件暴露了元交易(代付Gas)场景下的安全隐患,警示需加强安全与风控措施。

  • 行业启示:事件反映了Web3生态中“元交易”普及的挑战,需平衡便利性与安全性,推动低成本上链时代的到来。

总结

被朋友Q到近期火热的羊毛事件,截止目前,不仅是黑客获利超20W刀,FTX损失108+个ETH,合计有38名同样思路的攻击者部署合约发起攻击。

本文从技术维度出发,深入分析此利用FTX交易所免手续费提币的漏洞,结合智能合约回调发起的攻击方式,并通过样例代码复现实现原理。

由于FTX已经通过人工审计针对攻击者进行惩罚,该漏洞处于风险可控阶段。切勿尝试可能导致封号没收质押物。

1、背景

1.1 XEN是什么?

是近期大火的一个XEN币,到10-15为止已有超过120W笔交易,其实笔者对这类缺乏长期价值对Web3毫无建设性意义的项目一直没什么兴趣,因为他的机制就是只要发起的交易消耗了多少的GAS,就可以铸造出一定数量的XEN币,而众所周知Etherscan有针对gas消耗的排行榜

可以看到真正出色的项目往往由于服务用户多交易量大,所以gas消耗高排名靠前,仿佛成了另一种的应用商店热门榜单,而XEN一举通过“冲票“成了冠绝以太坊整个生态的Top1,且等于其他好项目的总和。

 

【深入解读】FTX交易所免手续费漏洞致使被薅20W刀XEN的羊毛案

可拓展阅读:当我们在看Etherscan的时候,到底在看什么?

1.2 受害方FTX交易所

本次被攻击的也正是其免费提币的优惠活动,在平台有质押且有一定交易记录后即可发起免费提币,而提币会受制于之前交易量(因此本文仅出于科普分析攻击手法,请勿模仿,易于被FTX官方封号没收质押资产)

 

【深入解读】FTX交易所免手续费漏洞致使被薅20W刀XEN的羊毛案

 

 

1.3 链上数分结果

其实mirror上爆出的还不是最大的攻击者,而此攻击手法最早出现在10-10号,截止10-15号,合计类似逻辑的攻击地址有38个,合计1.45W笔攻击(无法判断地址背后是否为相同攻击者)。

计算依据:FTX热钱包单笔转移gas消耗大于5W,且to地址是合约地址的交易。

下图为其中top10的攻击者,其交易数占总攻击数的80%,致使FTX手续费损失86个ETH

笔者通过对其交易的gas消耗总值核算后,得出FTX本次损失总值为:108.19个ETH

合计铸造出XEN约24亿个。按14号日常价格估算的话,则黑客总收益在24W美金以上

 

 

【深入解读】FTX交易所免手续费漏洞致使被薅20W刀XEN的羊毛案

详细数据可<十四君>公众号后台输入”FTX与XEN”获得

 

 

2、黑客攻击流程分析

2.1 核心原理

智能合约的fallback/receive可任意执行逻辑。

任何一个合约都有默认的fallback函数,典型的功能就是让合约可以接收以太币并对其做出反应,这也是代币型合约用来拒绝转账、发出事件或转发以太币的典型模式。后来更多场景是应用在代理升级模式(合约部署链上本身不可更改,但可以修改指向新的合约,从而实现一定程度上的升级)

总之就是,一笔指向合约地址的交易,如果没有匹配到对应执行的函数,就必然会执行fallback函数,而fallback可以将输入参数指向另一个合约地址,从而执行对应的逻辑。

参考:https://blog.soliditylang.org/2020/03/26/fallback-receive-split/

2.2 攻击流程

其实看完手法核心,已经很明显了

  1. 黑客先部署了一个攻击合约0xCba9b1
  2. 然后利用FTX的交易免费提币功能
  3. 让FTX的热钱包0xc098b2,发起了一笔指向攻击合约的提币
  4. 导致交易触发指向XEN合约的Mint函数调用
  5. 由于XEN合约可以设置Mint出代币的收益方,从而将代币转入黑客地址

 

【深入解读】FTX交易所免手续费漏洞致使被薅20W刀XEN的羊毛案

 

 

2.3 手法还原

其实任意fallback非常好触发,咱们通过现场手搓实现下,当然并不是MintXen,而是临时随意的一个20token来示意。

下文便是最简单的一个ERC20代币了,任何人均可执行mint函数,雷同于XEN了

对于ERC20/721实现原理可拓展阅读:【源码解读】你买的NFT到底是什么?

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract token20 is ERC20 {
    constructor() ERC20("Gold", "GLD") {}
    function mint(address to,uint256 amount) public {
        _mint(to,amount);
    }
}

而攻击合约也很简单,设置写死要调用Mint的XEN合约地址以及黑客收益的地址。

interface IERC20 {function mint(address to,uint256 amout) external ;}
contract attack{
    address ERC20Addr = 0xd9145CCE52D386f254917e481eB44e9943F39138;
    address myAddr = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
    receive() external payable {
        IERC20(ERC20Addr).mint(myAddr,1e18);
        selfdestruct(payable(myAddr));
    }
}

 

可以看到实验中,对此攻击合约发起的任意一笔交易,即会触发了receive,且myAddr的GLD余额增加1e18个,当然并不能拿着这个代码就去复现黑客的实现了,因为要铸造更多的GEX还得增加工厂合约部署的逻辑,即能提高gas消耗也吻合XEG的mint管理。

 

【深入解读】FTX交易所免手续费漏洞致使被薅20W刀XEN的羊毛案

 

 

3、总结-从攻击事件看“元交易”

其实如果不是黑客本身知道FTX有免费提币优惠,且其提币的交易的gasLimit设置为固定值50W,则很难发起这样的攻击,因为依据以太坊黄皮书,普通转账也仅仅需要2.1W的gas即可。

黑暗森林的web里知其雄守其雌,这样的攻击从历史进程来看,其实更有警示性意义

笔者想谈谈元交易的发展

元交易是来自于Christian Lundkvist教授在2015年的一个设想

如今上手 Dapp 实在是太麻烦了,以太坊生态若想普及,就应该允许新用户直接使用其功能,而不是先安排几座大山让用户翻山越岭。这意味着需要为新来的用户垫付 Gas 费用。当前的以太坊协议并没有提供原生方法来实现这一点。然而,得益于公/私密钥对,用户可以通过对元交易 进行签名并证明所有权。

相信未来元交易终会成为应用主流,本次的FTX代付gas执行免费提币转账还只是元交易的某种小小(伪)实现,但只有安全+无感才能迎接全民低成本上链时代的到来(而非低代币gas价格),为此安全与风控都需要特别注意,这也是笔者分析安全案件的初衷。

 

欢迎你从后台提交web3行业问题探讨

点赞关注十四,用技术视角带给你价值

 

 

分享至:

作者:十四君

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

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

图片来源:十四君如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊
推荐阅读
2小时前
7小时前
19小时前
2025-12-19 11:00
2025-12-19 09:52
2025-12-19 05:05

热门文章

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

精选专题

App内阅读