扫码下载
BTC $80,643.87 +1.16%
ETH $2,369.46 +0.36%
BNB $626.82 -0.28%
XRP $1.40 -0.63%
SOL $84.60 -0.20%
TRX $0.3395 +0.19%
DOGE $0.1112 -0.41%
ADA $0.2586 +2.69%
BCH $455.15 +2.22%
LINK $9.52 +1.21%
HYPE $43.18 +3.76%
AAVE $93.29 +0.23%
SUI $0.9478 +0.71%
XLM $0.1587 -0.85%
ZEC $417.26 +1.07%
BTC $80,643.87 +1.16%
ETH $2,369.46 +0.36%
BNB $626.82 -0.28%
XRP $1.40 -0.63%
SOL $84.60 -0.20%
TRX $0.3395 +0.19%
DOGE $0.1112 -0.41%
ADA $0.2586 +2.69%
BCH $455.15 +2.22%
LINK $9.52 +1.21%
HYPE $43.18 +3.76%
AAVE $93.29 +0.23%
SUI $0.9478 +0.71%
XLM $0.1587 -0.85%
ZEC $417.26 +1.07%

Beosin:FTX 遭 Gas 窃取攻击事件技术分析

2022-10-13 15:33:31
收藏

ChainCatcher 消息,Beosin 安全团队针对 FTX 遭 Gas 窃取攻击事件分析称,以其中一笔攻击交易为例 (0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69),攻击者先在链上部署攻击合约 (0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3)。

FTX 热钱包地址会向攻击合约地址转入小额的资金,利用攻击合约 (0xCba9...7FD3) 进行批量创建子合约。由于整个攻击中创建了大量合约,并且每次执行完子合约之后,子合约都会自毁。

接下来子合约 fallback() 函数去向 Xen 合约发起铸币请求,如下函数,claimRank() 函数传入一个时间期限(最小 1 天)进行铸币,铸币条件是只用支付调用 gas 费,并无其他成本,并且 claimMintReward() 函数为提取函数,该函数只判断是否达到时间期限(本次黑客设置的时间期限为最小值 1 天),便可无条件提取。但在此次调用过程中,交易发起者为 FTX 热钱包地址,所以整个调用过程的 Gas 都是由 FTX 热钱包地址所支付,而 Xen 铸币地址为攻击者地址。

前三个步骤重复多次,并且每次重复过程中都会将已到期的代币提取出来,并且同时发起新的铸币请求。

截止发文时,通过 Beosin Trace 追踪发现,FTX 交易所损失 81ETH,黑客通过 DODO、Uniswap 将 XEN Token 换成 ETH 转移。

app_icon
ChainCatcher 与创新者共建Web3世界