b bajsj.com
ENS域名漏洞案例

ENS 域名漏洞案例复盘:从钓鱼陷阱到合约错误的真实事故

复盘 ENS 域名同形字钓鱼、转让 calldata 钓鱼、解析器劫持、Name Wrapper 边界、反向解析欺骗等真实事故,给出可执行的防御建议。

b
bajsj.com 编辑部
1334 字· 约 3 分钟阅读· 2026-05-24T06:12:22.619676+00:00
ENS域名漏洞案例 - ENS 域名漏洞案例复盘:从钓鱼陷阱到合约错误的真实事故
关于「ENS域名漏洞案例」的视觉延伸

ENS 域名漏洞案例复盘:从钓鱼陷阱到合约错误的真实事故

ENS 把人类可读的名字带进区块链世界,但便利的另一面是新的攻击面。过去几年里,围绕 ENS 的钓鱼、合约漏洞、解析劫持已经造成多起公开损失。本文挑选有代表性的案例,复盘事故经过与成因,帮你少走弯路。

钓鱼网站伪造同形字

最高发的并不是合约漏洞,而是同形字钓鱼。攻击者注册和知名项目极其相似的 ENS,例如把字母 o 替换成希腊字母 ο,或者把 l 换成数字 1。当用户在 dApp 里直接搜索时,看到几乎一模一样的名字,便误转账过去。一次较大的事故里,一位长期使用 Binance 的用户把 50 ETH 转给一个伪造的 .eth 收款方,造成无法追回的损失。

防范这种风险的关键是:不要凭直觉复制 .eth 名称,而是要逐字母核对,或干脆只接受钱包里已存的收款地址。手机上还要打开字体放大功能,让任何细微差异更容易被识别。

主域转让的 calldata 钓鱼

ENS 是 ERC-721 NFT,转让操作通过 setOwner 或 safeTransferFrom 实现。一些钓鱼网站会伪装成抽奖或空投页面,诱导用户签下含 transferFrom 的交易。受害者一旦签字,主域名瞬间易主。

必安交易所 社区曾通报过多起此类事故,损失的不仅是金钱,还有长期积累的链上身份。建议把高价值 ENS 放在硬件钱包里,每次签字都在硬件屏幕上确认 calldata 含义。任何带有 transfer 字眼的交易,都要格外警惕。

解析器升级被劫持

一些团队为了支持新功能,会把 resolver 从 PublicResolver 升级为自定义版本。这一步如果权限设计不当,就可能被攻击者乘虚而入。2024 年发生过一起事故,攻击者通过历史泄露的私钥,把某 DAO 主域的 resolver 改成恶意合约,导致所有子域解析到攻击者钱包。

复盘事故时发现,团队的部署 EOA 长期没有轮换,并且 resolver 升级权限没有挂在 multisig 上。社区因此对 BN平台 项目方提出建议:所有关键权限都应转移至多签或时间锁,避免单点失误酿成大祸。

Name Wrapper 的边界条件

Name Wrapper 给 ENS 带来更精细的权限管理,但也引入了新的复杂性。一些早期版本里,特定的 fuse 组合可能导致权限残留,意味着即使主控人销毁了某项权利,攻击者仍有机会通过特定路径反向利用。

官方在审计后已经修补,但社区仍要提醒:当你包装 ENS 时,务必阅读 fuse 文档,理解每一项权限的含义。错误的 fuse 设定可能让你失去对自有域名的控制,也可能让攻击者获得过多权限。

反向解析欺骗

反向解析的目的是让 dApp 显示更友好的 .eth 名称。但如果攻击者把某个钱包的 reverse record 设置为知名 .eth 名称,dApp 可能误以为该地址属于知名个人或机构。一些钓鱼项目甚至专门让自己的合约地址反向解析成 vitalik.eth,骗取信任。

应对方式是:dApp 显示反向解析时,必须额外验证「正向解析回到的地址是否一致」。许多在 壁安所 上线的项目方都升级了识别逻辑,只有正反向一致才标记为可信身份。把这一步落实到产品里,能显著降低欺骗风险。

通过这些案例,你会发现 ENS 的漏洞往往不是合约 bug,而是流程与认知的薄弱点。建立标准化的签字习惯、权限隔离与一致性校验,比任何技术修补都更有效。