Agent Skills
返回列表
💻

智能合约漏洞

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/smart-contract-vulnerabilities-kex5 到当前 AI 助手。

技能介绍

要解决的问题

智能合约部署后无法修改,一个细微漏洞就可能让资金池被清空。审计的真正难点不是经典重入这类已知模式,而是更隐蔽的状态交互:跨合约重入让多个合约共享的陈旧状态被反复读取,代理模式下的存储布局冲突让 delegatecall 写到错误的槽位,tx.origin 校验被钓鱼合约继承。基础模型往往漏掉这些需要逐步推演的问题。

核心能力与关键步骤

技能按漏洞类别组织成攻击手册,每个类别都包含原理、攻击步骤或示例、真实案例与缓解措施:

  • 重入:拆分为经典、跨函数、跨合约、只读四种变体。跨函数重入用步骤表展示 withdraw() 回调期间 transfer() 读取陈旧余额的过程;只读重入附 Curve get_virtual_price() 在 remove_liquidity() 回调中被放大价格的案例。缓解侧给出 CEI、ReentrancyGuard、拉取支付模式。
  • 整数溢出:区分 Solidity 0.8 前后的算术行为,指出 unchecked{} 块重新引入风险,并列出 SafeMath 绕过场景:uint256 到 uint128 截断、汇编 mstore/add、(a * b) / c 的中间乘法溢出。
  • 权限控制与 delegatecall:对比 msg.sender 与 tx.origin,归纳常见的权限缺失;delegatecall 部分覆盖存储槽冲突和函数选择器冲突,提示用 cast selectors 枚举。
  • 其他专项:随机性操纵(含 commit-reveal 选择性中止)、抢跑/MEV 防护(Flashbots、私有内存池、滑点保护、时间锁)、签名重放(缺少 nonce、跨链重放、EIP-712 实现错误)、selfdestruct 强制转账、CREATE2 预充值/预授权利用、闪电贷原子性、短地址攻击。
  • 工具链:整合 Slither、Mythril、Echidna、Foundry (Forge)、Hardhat、Certora、4naly3er,并附决策树。

适用边界

技能是审计推理辅助,不是自动化扫描器:它解释攻击路径与修复模式,不替代静态分析,也不保证覆盖所有项目定制逻辑。需要漏洞/修复代码对照、Gas 优化陷阱和存储槽计算示例时,需额外加载 SOLIDITY_VULN_PATTERNS.md;涉及 DeFi 组合攻击或链下反序列化目标时,按路由加载 defi-attack-patterns 与 deserialization-insecure。涉及 selfdestruct 与 CREATE2 的结论以 EIP-6780 之后的链上行为为准。

使用场景

  • 审计一笔跨合约资金流转时,需要按步骤推演陈旧状态被重入回调反复读取并放大价格的路径
  • 排查代理合约升级后权限异常,需要核对 implementation 写入槽位与 proxy owner 的存储布局冲突
  • 检查 EIP-712 签名实现时,需要定位缺少 nonce 或 chainId 导致的同链或跨链签名重放风险
  • 分析闪电贷攻击交易时,需要在原子序列失败回滚的约束下复现预充值、预授权或价格操纵步骤

适合人员

  • 负责智能合约安全审计、需要输出漏洞分类与修复建议的审计工程师
  • 开发 DeFi 协议、要在上线前自查重入、溢出、权限与闪电贷路径的 Solidity 工程师
  • 运行漏洞扫描并需要解释 Slither、Mythril、Echidna 报告的区块链安全分析师
  • 验证合约属性、需要把 EIP-6780 后 selfdestruct 与 CREATE2 行为纳入检查范围的形式化验证工程师