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.jsonA 类代码实现漏洞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.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-tokensA Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected项目地址: https://gitcode.com/gh_mirrors/aw/awesome-buggy-erc20-tokens创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考