news 2026/8/24 17:04:09

awesome-buggy-erc20-tokens 完全入门指南:一站看懂 32 类 ERC20 合约漏洞与上千个问题代币

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
awesome-buggy-erc20-tokens 完全入门指南:一站看懂 32 类 ERC20 合约漏洞与上千个问题代币

awesome-buggy-erc20-tokens 完全入门指南:一站看懂 32 类 ERC20 合约漏洞与上千个问题代币

【免费下载链接】awesome-buggy-erc20-tokensA Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected项目地址: https://gitcode.com/gh_mirrors/aw/awesome-buggy-erc20-tokens

本文带你快速入门awesome-buggy-erc20-tokens:一份收集32 类 ERC20 智能合约漏洞上千个问题代币的安全清单,适合零基础新手、合约开发者和代币投资者阅读。

上图是以太坊主网 ERC20 合约每日创建数量的趋势:2018 年 3 月前后每天新建合约峰值超过 600 个。合约量越大,出错的概率就越高——这正是本项目存在的意义。

为什么需要这份 ERC20 漏洞清单?

ERC20 是以太坊上最主流的代币标准,但大量代币合约在开发时复制、抄改他人代码,引入了真实漏洞或不规范实现,已多次酿成惨案:

  • 2018 年 4 月,美链(BEC)因整数溢出被黑客打出天量代币砸盘,价格几乎归零;
  • 2018 年 4 月,SMT 爆出同类溢出漏洞,代币崩盘;
  • 2018 年 5 月,EDU 合约逻辑缺陷使用户余额可被任意转出,同类问题波及至少 81 个合约;
  • 2018 年 6 月,一批 ERC20 整数溢出漏洞(CVE-2018-11687 等)被披露,扫描发现800 多个合约受影响。

这些案例在 README_CN.md 中均有详细复盘。

32 类 ERC20 合约漏洞速览表

全部漏洞按A 代码漏洞 / B 不规范 / C 权限管理三大类编号(编号映射见 issues.json):

A 类:代码实现漏洞(A1–A25)

编号漏洞名称一句话解释
A1batchTransfer-overflow批量转账金额乘法溢出,余额校验被绕过
A2totalsupply-overflow总供应量计算溢出,数值"绕圈"变小
A3verify-invalid-by-overflow溢出使校验条件恒真,检查形同虚设
A4owner-control-sell-price-for-overflow溢出被利用,Owner 可任意操纵卖价
A5owner-overweight-token-by-overflow溢出导致 Owner 代币占比失控
A6owner-decrease-balance-by-mint-by-overflow增发时溢出,反而能"扣减"他人余额
A7excess-allocation-by-overflow溢出导致超额分配代币
A8excess-mint-token-by-overflow溢出可无限增发代币(SMT 同款)
A9excess-buy-token-by-overflow溢出导致低价多买代币
A10verify-reverse-in-transferFromtransferFrom 校验条件写反,任何人都能转你的币
A11pauseTransfer-anyone任何人可调用暂停转账
A12transferProxy-keccak256转账代理签名使用弱哈希
A13approveProxy-keccak256授权代理签名使用弱哈希
A14constructor-case-insensitive构造函数大小写不规范,可能被外部调用
A15custom-fallback-bypass-ds-auth自定义 fallback 绕过 DS 鉴权
A16custom-call-abuse自定义 call 函数被滥用执行任意操作
A17setowner-anyone任何人可把合约 Owner 改成自己
A18allowAnyone"任何人"级别的放行漏洞
A19approve-with-balance-verifyapprove 冗余余额校验,破坏 DEX 协议
A20re-approve可重复授权覆盖,产生授权风险
A21check-effect-inconsistency校验逻辑与实际效果不一致
A22constructor-mistyping构造函数笔误,一个字母导致功能错乱
A23fake-burn"假销毁":余额不清零,代币反复流通
A24getToken-anyone任何人可调用 getToken 取走代币
A25constructor-naming-error构造函数命名错误,未真正生效

B 类:不规范问题(B1–B7)

编号漏洞名称一句话解释
B1transfer-no-returntransfer 无返回值,编译器 0.4.22 后与 DEX 不兼容
B2approve-no-returnapprove 无返回值,同样引发兼容性问题
B3transferFrom-no-returntransferFrom 无返回值
B4no-decimals缺少 decimals() 接口
B5no-name缺少 name() 接口
B6no-symbol缺少 symbol() 接口
B7no-Approval缺少 Approval 事件,DApp 无法监听授权

C 类:权限管理问题(C1)

编号漏洞名称一句话解释
C1centralAccount-transfer-anyone中央账户可转移任何人的代币余额

完整的漏洞原理讲解、错误示例与推荐写法,都在 ERC20_token_issue_list_CN.md 中逐条展开,每类漏洞还附有受影响的原始地址列表(如 raw/fake-burn.txt)。

上千个问题代币数据文件怎么用?

项目根目录的四个汇总数据文件是查询入口:

  • 全量总表:bad_tokens.all.csv / bad_tokens.all.json——收录4400+ 条问题代币记录,含合约地址、问题编号(如[A2][B1][B7]表示一个合约同时命中多类问题)、代币名称、上所交易所、总量等字段;
  • 头部代币榜:bad_tokens.top.csv / bad_tokens.top.json——市值排名靠前的风险代币,投资者可优先核查;
  • 基础字典:token_dict.json 与 token_detail_dict.json——收录 CoinMarketCap 上榜代币的地址与详情。

30 秒上手查询:在 CSV 中搜你要核查的合约地址,category列的[A2][B1]之类标签直接对照上表即可知道它命中了哪些风险。

数据是如何生成的:脚本与目录结构

整个项目是一个"原始数据 → 脚本 → 汇总报表"的小工具链:

  • raw/ 目录:每类漏洞一个文本文件,逐行存放受影响的合约地址;
  • gen_list_from_raw.py:从 raw 目录生成各类别csv/*.o.csvjson/*.o.json及根目录的 bad_tokens 汇总文件(依赖web3库);
  • gen_token_detail_dict.py:生成代币详细信息字典;
  • issues.json:漏洞名称 ↔ 编号(A1–C1)的映射表。

也就是说,当你发现新的漏洞类别时,只需补充 raw 数据与 issues 映射,跑一遍脚本即可全库更新,这也是项目长期可持续维护的原因。

新手避坑清单:开发与投资的 6 条安全建议

合约开发者:

  1. 所有算术运算使用 SafeMath 等安全库,杜绝整数溢出(A 类漏洞的重灾区);
  2. 标准函数保持规范返回值与事件:transfer/approve/transferFrom返回bool,触发TransferApproval事件;
  3. 提供name() / symbol() / decimals()查询接口,命名大小写与规范一致;
  4. 收紧 Owner 权限:暂停转账、修改 Owner、增发、改价等操作必须严格鉴权(对应 A11/A17/C1);
  5. 不要盲目复制网上模板代码——本项目中绝大多数漏洞源于"抄改他人代码"。

代币投资者:

  1. 买入前用 bad_tokens.all.csv 查询合约地址,头部风险代币直接看 bad_tokens.top.csv;发现列表遗漏欢迎提交更正。

写在最后:持续更新的 ERC20 安全资源

awesome-buggy-erc20-tokens 是一份持续维护的安全资源:漏洞清单随新披露滚动更新(更新记录见 ERC20_token_issue_list_CN.md 顶部),数据文件由脚本保证一致性。

把它当作你的"避雷手册"——开发前查一遍,投资前查一遍,能帮你省下无数次踩坑的成本。🛡️

【免费下载链接】awesome-buggy-erc20-tokensA Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected项目地址: https://gitcode.com/gh_mirrors/aw/awesome-buggy-erc20-tokens

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 17:03:56

SwiftOpenAI Response API实战:比Chat Completions更强大的新一代API

SwiftOpenAI Response API实战:比Chat Completions更强大的新一代API 【免费下载链接】SwiftOpenAI The most complete open-source Swift package for interacting with OpenAIs public API. 项目地址: https://gitcode.com/gh_mirrors/sw/SwiftOpenAI Swif…

作者头像 李华
网站建设 2026/8/24 17:01:08

法律AI应用实战:构建安全可靠的合同审查辅助系统

在数字化转型浪潮席卷各行各业的今天,法律行业这个以严谨和专业著称的领域,也正站在AI技术应用的风口浪尖。许多律所和律师团队在尝试引入AI工具时,常常面临一个核心矛盾:既希望AI能提升效率、辅助决策,又担心其“幻觉…

作者头像 李华
网站建设 2026/8/24 16:57:17

Hedge-Bench:金融智能体的硬核推理基准与实战构建指南

1. 项目概述:为什么我们需要一个“硬核”的金融推理基准?最近和几个做量化策略和金融科技的朋友聊天,大家都有一个共同的痛点:现在市面上各种大语言模型(LLM)和智能体(Agent)满天飞&…

作者头像 李华