揭秘以太坊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万美元。
这次攻击事件再次提醒我们,智能合约的安全性至关重要,项目方必须加强对漏洞的识别和修复,以确保区块链生态系统的可持续发展和用户的资产安全。
比推快讯
更多 >>- Aboard Exchange宣布完成最新升级
- ETH跌破3200美元
- 香港虚拟银行Mox:拟透过Mox Invest证券交易平台向客户提供虚拟资产ETF
- Wintermute将15,000枚ETH转入Coinbase
- FTX债权人Sunil:新CEO接管时未提及FTX拥有5500万枚SOL,将反对S&C所有计划
- 美众议员French Hill:如果稳定币立法与大麻银行法案相结合,将投票支持该法案
- 2个巨鲸地址交易BRETT获利约314万美元,收益达30830倍
- 慢雾:警惕恶意攻击者利用WordPress插件漏洞发起的水坑攻击
- 毕马威:自托管机构投资者可通过香港ETF持有虚拟资产,无需事先兑换为法币
- 中国台湾检方建议对ACE交易所诈骗案4名主要嫌疑人判处20年有期徒刑
- 香港交易所:收纳博时HashKey、华夏、嘉实比特币及以太币ETF为中央结算系统多柜台合资格证券
- 知情人士:惠理提交虚拟货币现货ETF申请后又主动退出
- 1亿枚 USDT 从 Tether Treasury 转移到 Bitfinex
- Optimism已修复其测试网的两个关键漏洞
- Arkham:与 Wisdomtree WBIT相关的钱包持有8900枚BTC,价值约 5.79 亿美元
- 纳指止步4周连跌,创去年11月以来最大单周涨幅
- DAI 单日链上转账金额达到 860 亿美元,创下历史新高
- 以太坊 Rollup 协议 Zircuit 拟于夏季启动主网,总锁仓价值已达25亿美元
- 美参议员警告用于交易儿童性虐待材料的加密活动有所增加
- 加密银行 Custodia Bank 就其美联储成员资格败诉一案提出上诉
- Yuga Labs裁员,专注于建立“更小、更灵活的加密原生团队”
- NFTfi基金会:NFTFI空投申领门户将从 4 月 30 日开放至 6 月 10 日
- dYdX Chain累计交易量突破1200亿美元
- Phoenix Wallet将从美国应用商店下架,Jack Dorsey称“感觉完全没有必要”
- 零知识 (ZK) 协议 Hinkal 完成140 万美元战略融资,估值 7000 万美元
- 姆爷Eminem取代马特·达蒙成为 Crypto.com 最新明星代言人
- 九只现货比特币ETF今日净减持2,987枚BTC,净流出约1.9亿美元
- Yuga Labs 聘请媒体资深人士 Won Kim 担任品牌合作主管
- 一巨鲸从3月1日至4月15日买入近2.5万枚BTC,价值达 16.8 亿美元
- Sam Altman、黄仁勋等科技巨头高管加入美国联邦人工智能安全委员会
比推专栏
更多 >>观点
项目
比推热门文章
- Aboard Exchange宣布完成最新升级
- ETH跌破3200美元
- 香港虚拟银行Mox:拟透过Mox Invest证券交易平台向客户提供虚拟资产ETF
- 【比推周末重点新闻回顾】美众议员French Hill:如果稳定币立法与大麻银行法案相结合,将投票支持该法案;毕马威:自托管机构投资者可通过香港ETF持有虚拟资产,无需事先兑换为法币;香港交易所:收纳博时HashKey、华夏、嘉实比特币及以太币ETF为中央结算系统多柜台合资格证券
- Wintermute将15,000枚ETH转入Coinbase
- 加密市场再起风云,并行SVM挑战并行EVM?
- FTX债权人Sunil:新CEO接管时未提及FTX拥有5500万枚SOL,将反对S&C所有计划
- 美众议员French Hill:如果稳定币立法与大麻银行法案相结合,将投票支持该法案
- 2个巨鲸地址交易BRETT获利约314万美元,收益达30830倍
- 慢雾:警惕恶意攻击者利用WordPress插件漏洞发起的水坑攻击