欢迎光临
我们一直在努力

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

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

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

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

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)

编号漏洞名称一句话解释
A1 batchTransfer-overflow 批量转账金额乘法溢出,余额校验被绕过
A2 totalsupply-overflow 总供应量计算溢出,数值"绕圈"变小
A3 verify-invalid-by-overflow 溢出使校验条件恒真,检查形同虚设
A4 owner-control-sell-price-for-overflow 溢出被利用,Owner 可任意操纵卖价
A5 owner-overweight-token-by-overflow 溢出导致 Owner 代币占比失控
A6 owner-decrease-balance-by-mint-by-overflow 增发时溢出,反而能"扣减"他人余额
A7 excess-allocation-by-overflow 溢出导致超额分配代币
A8 excess-mint-token-by-overflow 溢出可无限增发代币(SMT 同款)
A9 excess-buy-token-by-overflow 溢出导致低价多买代币
A10 verify-reverse-in-transferFrom transferFrom 校验条件写反,任何人都能转你的币
A11 pauseTransfer-anyone 任何人可调用暂停转账
A12 transferProxy-keccak256 转账代理签名使用弱哈希
A13 approveProxy-keccak256 授权代理签名使用弱哈希
A14 constructor-case-insensitive 构造函数大小写不规范,可能被外部调用
A15 custom-fallback-bypass-ds-auth 自定义 fallback 绕过 DS 鉴权
A16 custom-call-abuse 自定义 call 函数被滥用执行任意操作
A17 setowner-anyone 任何人可把合约 Owner 改成自己
A18 allowAnyone "任何人"级别的放行漏洞
A19 approve-with-balance-verify approve 冗余余额校验,破坏 DEX 协议
A20 re-approve 可重复授权覆盖,产生授权风险
A21 check-effect-inconsistency 校验逻辑与实际效果不一致
A22 constructor-mistyping 构造函数笔误,一个字母导致功能错乱
A23 fake-burn "假销毁":余额不清零,代币反复流通
A24 getToken-anyone 任何人可调用 getToken 取走代币
A25 constructor-naming-error 构造函数命名错误,未真正生效

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

编号漏洞名称一句话解释
B1 transfer-no-return transfer 无返回值,编译器 0.4.22 后与 DEX 不兼容
B2 approve-no-return approve 无返回值,同样引发兼容性问题
B3 transferFrom-no-return transferFrom 无返回值
B4 no-decimals 缺少 decimals() 接口
B5 no-name 缺少 name() 接口
B6 no-symbol 缺少 symbol() 接口
B7 no-Approval 缺少 Approval 事件,DApp 无法监听授权

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

编号漏洞名称一句话解释
C1 centralAccount-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.csv、json/*.o.json 及根目录的 bad_tokens 汇总文件(依赖 web3 库);
  • gen_token_detail_dict.py:生成代币详细信息字典;
  • issues.json:漏洞名称 ↔ 编号(A1–C1)的映射表。

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

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

合约开发者:

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

  • 买入前用 bad_tokens.all.csv 查询合约地址,头部风险代币直接看 bad_tokens.top.csv;发现列表遗漏欢迎提交更正。
  • 写在最后:持续更新的 ERC20 安全资源

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

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

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

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

    赞(0)
    未经允许不得转载:171主机测评 » awesome-buggy-erc20-tokens 完全入门指南:一站看懂 32 类 ERC20 合约漏洞与上千个问题代币
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址