b biangogo.com
~ / biangogo.com / abilou-dong-an-li

ABI 漏洞案例复盘:函数选择器冲突与签名诱导的真实事件

published: 2026-05-24T06:12:20.188696+00:00 updated: 2026-05-24T14:31:52.621253+00:00
ABI漏洞案例 - ABI 漏洞案例复盘:函数选择器冲突与签名诱导的真实事件

ABI 是合约的对外契约,看似只是 JSON 文件,却也曾在多个安全事件中扮演关键角色。无论是函数选择器冲突,还是诱导用户签名,问题的本质常常落在 ABI 层。本文复盘几类典型 ABI 相关漏洞,并给出可执行的防御建议。

函数选择器冲突的代理合约劫持

函数选择器是 ABI 函数签名的前 4 字节,代理合约依靠它来路由调用。若实现合约里存在与代理函数选择器相同的函数,攻击者可以借此调用本不应暴露的逻辑。某些早期代理项目就因此被劫持。防御要点是使用透明代理或经过审计的代理库,并在 CI 中检查选择器是否冲突。可参考 ABI安全审计 中的工具推荐。

签名诱导:让用户签下危险交易

部分钓鱼网站通过精心设计的 ABI,把签名提示伪装成普通操作,例如把无限授权伪装成签到。用户在弹窗中看到的不是真实意图,于是被诱导授权。防御方法是钱包对 ABI 做白名单校验,并在签名前提示具体函数语义。延伸阅读 ABI实战教程

参数解析错误与定长数组陷阱

复杂参数类型容易在编码与解码之间出现差异。例如定长数组与动态数组在 ABI 编码中布局不同,混用会导致前端读到错误数据。某些跨链桥事件正是因为参数解析与字节码不一致而失败。详见 ABI常见错误