
揭秘以太坊TIME合约黑客攻击事件 如何利用ERC2771协议安全问题获利?
当我们都以为这本是一场普通的攻击。
2023年12月07日,据Beosin旗下Eagle Eye平台消息,以太坊的TIME合约遭受黑客攻击,黑客获利约18.8万美元。
EagleEye平台截图
但我们发现,本次事情好像不止这么简单。
通过追踪溯源发现,我们发现在2023年12月4日,thirdweb就在博客和官方发布漏洞公告称“2023 年 11 月 20 日,我们意识到 web3 智能合约常用开源库特定模式的集成存在安全漏洞,该漏洞影响了 Thirdweb 的一些预构建智能合约,并联系了相关项目方进行缓解。”
相关链接:https://twitter.com/thirdweb/status/1731841493407576247,https://blog.thirdweb.com/security-vulnerability/
12月7日,以太坊的TIME合约,成为第一个因该安全问题受害的第一项目。
今天让我们还原一下本次攻击事件真相。
协议背景简介
ERC2771 原生元交易安全协议:
EIP 2771协议为接收者合约定义了合约级协议,以通过可信转发器合约接受元交易。没有进行任何协议更改。通过附加额外的 calldata 向接收者合约发送有效的 msg.sender(称为 _msgSender())和 msg.data(称为 _msgData()),该协议设计的初衷在于让以太坊接受来自没有 ETH 来支付 Gas 费用的外部账户的调用。
由于该设计的特殊性,其msg.sender正如其协议描述的那样是通过_msgSender()函数获取的,该函数会会判断发起者是否为可信转发器,如果是,则将截取传入的Calldata的最后20个字节作为交易的发起者。
参考链接:https://eips.ethereum.org/EIPS/eip-2771,https://etherscan.io/address/0x4b0e9a7da8bab813efae92a6651019b8bd6c0a29#code
Muticall批处理调用库:
Muticall是一个由openzeppelin contacts提供的单个外部调用中批量处理多个调用的功能库。
从Time事件中我们可以看见其Multicall()函数中将循环调用DelegateCall 函数处理Calldata并调用本合约的其他函数。
参考链接:https://github.com/OpenZeppelin/openzeppelin-contracts,https://etherscan.io/address/0x4b0e9a7da8bab813efae92a6651019b8bd6c0a29#code
TIME合约事件相关信息
●攻击交易
0xecdd111a60debfadc6533de30fb7f55dc5ceed01dfadd30e4a7ebdb416d2f6b6
●攻击者地址
0xfde0d1575ed8e06fbf36256bcdfa1f359281455a
●攻击合约
0x6980a47bee930a4584b09ee79ebe46484fbdbdd0
●被攻击合约
0x4b0e9a7da8bab813efae92a6651019b8bd6c0a29
TIME合约事件漏洞分析
本次攻击主要利用了转发器(Forwarder)合约调用了TIME 代币的multicall 函数,并由于TIME代币使用了ERC2771 原生元交易的安全协议,从而恶意伪造_msg.sender进而销毁了pair中的代币。最终由于token代币价格上涨兑换而获利。
TIME合约事件攻击流程
1.攻击者首先使用5个WTH兑换约34.5亿个Time代币作为准备资金。
2.接着攻击者调用转发器的execute函数通过签名验证,并传入恶意的calldata,如下
3.此时execute函数会调用req.to地址(Time代币地址),并将req.data和req.from地址打包并调用Time代币的multicall函数。那这里黑客是如何将req.from给舍弃的呢?原因在于黑客将data[1]的长度(size)设置为了0×38,那么muticall在解析data时req.from将被截断。
参考:https://docs.soliditylang.org/en/v0.8.12/abi-spec.html
4. muticall 函数以pair的调用者身份调用burn函数销毁piar中的Time代币。
5. 最后攻击者调用pair中的sync函数同步pair中的储备量,使得Time代币价格上涨。
最后黑客使用准备阶段获得的TIME代币在pair中兑换ETH从而获利18.8万美元。
这次攻击事件再次提醒我们,智能合约的安全性至关重要,项目方必须加强对漏洞的识别和修复,以确保区块链生态系统的可持续发展和用户的资产安全。
比推快讯
更多 >>- 美国基金经理增持标普 500 指数净多头头寸至 887,310 手合约
- 美俄总统在阿拉斯加会面
- 美国考虑对俄罗斯石油公司实施制裁
- 普京抵达安克雷奇,将与特朗普举行会晤
- 数据:过去 1 小时 Binance 净流出 3,683.91 万 USDT
- 美联储逆回购操作接纳 337.57 亿美元
- ARK Invest 向 Coinbase 存入 1268 枚 BTC,约 1.4888 亿美元
- 数据:ETH 当前全网 8 小时平均资金费率为 0.005%
- BitMine 再度斥资 1.3 亿美元增持 28,650 枚 ETH
- 美联储宣布将终止针对银行加密货币业务的监管计划
- 数据:Machi Big Brother 持仓浮亏 540 万美元
- Longling Capital 关联地址抛售 7000 枚 ETH,约 3182 万美元
- Manta Network 与 Wintermute 达成 750 万枚 MANTA 代币流动性协议
- 俄新社:普京与特朗普会谈前的气氛剑拔弩张
- 麻吉大哥黄立成 25 倍杠杆 ETH 多单已浮亏超 400 万美元
- 阿联酋多家航空公司支持加密货币支付购票
- 过去 24 小时全网爆仓 3.84 亿美元,主爆多单
- DCG 起诉子公司 Genesis 索赔超 1.05 亿美元
- Plasma 宣布主网测试版将在 Aave 上线
- 对冲基金 Brevan Howard 披露持有超 23.2 亿美元贝莱德比特币现货 ETF
- META 总市值首次升破 2 万亿美元
- 某鲸鱼从 Binance 提出 25,600 枚 SOL,约 494 万美元
- 中国台湾比特币财库公司 Top Win 完成 1000 万美元融资,将用于购买比特币
- 纽约州立法者提议征收加密货币税以资助学校项目
- 美国 8 月五至十年期通胀率预期初值升至 3.9%
- Deribit 将推出以 USDC 结算的线性比特币和以太坊期权
- 麻吉大哥黄立成加仓 BTC 与 ETH 多单,总头寸规模超 1 亿美元
- 美国 30 年期国债收益率比 5 年期收益率高出 109 个基点,为 2021 年以来最阔水平
- 道琼斯指数开盘上涨 211.9 点,纳斯达克下跌 23.89 点
- Hyperbeat 完成 520 万美元种子轮融资,ether.fi Ventures 与 Electric Capital 共同领投
- Qubic 发布 51%攻击实验报告:期间导致 6 个区块被重组、60 个区块孤立
- 上市公司 Know Labs 宣布更名为 USBC,并实施比特币财库战略
- 一新地址从 Binance 提出 1020 万美元 LINK
- 美 SEC 主席:正动员所有部门将美国打造成全球加密货币中心
- 美联储官员表示若通胀未陷入螺旋可考虑降息
- 美国德州查获 280 万美元加密货币,涉勒索软件案件
- 外媒:若美国政府迫使谷歌出售 Chrome,OpenAI 创始人有兴趣收购
- DeFi Development 斥资约 2200 万美元增持 11 万枚 SOL
- 美联储古尔斯比强调需区分价格涨幅应对策略
- 美联储古尔斯比表示无需维持当前利率水平
- 美联储古尔斯比称需另一份通胀报告判断经济状况
- 美联储古尔斯比:关注 PPI、CPI 和进口价格数据
- BTC 跌破 119000 美元
- 美元指数 DXY 短线上扬超 10 点,现报 97.96
- 交易员预计美联储 9 月降息,2025 年再降息一次
- 《GENIUS 法案》引发监管争议,银行业警告稳定币利息漏洞
- 美国 7 月零售销售月率 0.5%,预期 0.5%
- SharpLink 公布 Q2 业绩报告:现持有 728,804 枚 ETH
- SharpLink 二季度净亏损超 1 亿美元,ETH 持仓达 72.88 万枚
- 巴克莱:鲍威尔鹰派立场不会被就业数据改变