返回论坛

貔貅盘技术特征深度剖析:从合约层面识别蜜罐代币

查找币 学术研究 安全研究 Web3安全 区块链安全

查找币安全研究院

钱包恢复评估 | 链上取证分析 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交完整私钥或助记词。

查看研究院 研究报告中心
## 背景 近期,安全社区用户 @roffett_eth 披露,GMGN 网站趋势列表中大量 ERC20 代币实为蜜罐(Honeypot)代币。即便这些代币被标记为“Everything is SAFU”,仍存在严重安全风险——骗子尚未完成完整的 Rug Pull 流程。查找币创始人 Cos 指出,该现象不仅限于 GMGN,DEXTools、DEX Screener 等主流链上数据平台同样存在类似问题。 本文将从技术角度深入分析貔貅盘的典型作恶手段,提炼可量化的风险特征,帮助用户在没有代码审计能力的情况下,建立有效的风险识别能力。 ## 貔貅盘核心攻击向量分析 ### 1. 恶意 Burn 机制:伪销毁真盗取 Burn(销毁)本应是合法的通缩操作,用于永久减少代币流通量。但在貔貅盘设计中,恶意开发者通过特权地址调用经过篡改的 Burn 函数,实现以下攻击效果: - **强制销毁用户资产**:在不经用户授权的情况下,销毁用户钱包中的代币 - **操控市场价格**:通过减少特定地址的持仓量,配合其他漏洞操纵流动性池 - **实现套利获利**:利用销毁后市场供需变化,通过提前埋伏的地址获利 **典型案例:Solana 上的 Xiaopang 代币** 合约地址:`6JCQ8Bsx8LcmE8FVsMrDVhXJ9hJYaykTXsoVN67CLsSX` 交易哈希:`FnHT9joQPGsap7T5e41h462m3tSKJ4NZPCVvF7Cd3Ucd3mP7U3D5UQxwqKPciR3YMrsDE8p4F4rMVcvi9x1WWVr` 该合约中,Burn 函数被重写为可任意指定目标地址,恶意开发者通过调用该函数,批量销毁普通用户的代币持仓,同时保留自身地址的代币,实现变相资产转移。 ### 2. Permit 函数签名绕过:授权逻辑漏洞 **典型案例:Base 链上的 BIGI DAO 代币** 合约地址:`0x8384De070d4417fDf1e28117f244E909C754bCFf` 通过风险检测工具分析,该代币已被标记为貔貅盘。深入代码审计发现,其 `permit` 函数存在严重签名校验逻辑缺陷: ```solidity function permit( address issuer, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external { if (block.timestamp > deadline) revert PermitExpired(); if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) revert InvalidS(); if (v != 27 && v != 28) revert InvalidV(); bytes32 digest = keccak256( abi.encodePacked( EIP191_PREFIX_FOR_EIP712_STRUCTURED_DATA, DOMAIN_SEPARATOR, keccak256(abi.encode(PERMIT_SIGNATURE_HASH, issuer, spender, value, nonces[issuer]++, deadline)) ) ); address recoveredAddress = checkSigner(issuer, digest, v, r, s); if (recoveredAddress != issuer) revert InvalidSignature(); _approve(issuer, spender, value); } function checkSigner(address signer, bytes32 digest, uint8 v, bytes32 r, bytes32 s) internal view returns (address) { if (keccak256(abi.encodePacked(msg.sender)) == PERMIT_TYPE_HASH) { return signer; } return ecrecover(digest, v, r, s); } ``` **攻击逻辑分析**: - `checkSigner` 函数在验证签名时,首先检查 `msg.sender`(即发起交易的钱包地址)是否等于预设的 `PERMIT_TYPE_HASH` 哈希值 - 如果匹配,函数直接返回 `signer` 参数,**完全跳过 ECDSA 签名验证** - 恶意开发者通过部署合约或使用预计算地址,可以构造出满足条件的 `msg.sender`,从而绕过签名校验 - 一旦绕过,攻击者可强制为任意用户授权(`approve`),进而转移用户资产 ### 3. 交易税动态调整陷阱 部分貔貅盘合约包含可变的交易税率机制,恶意开发者通过以下方式实现资产冻结: - **初始低税率**:吸引用户买入,制造正常交易的假象 - **动态上调**:在积累足够流动性后,通过特权函数将交易税调整至100% - **锁定流动性**:用户卖出时需支付全额交易税,导致实际无法卖出 ### 4. 黑/白名单机制滥用 - **黑名单功能**:恶意开发者可将用户地址加入黑名单,阻止其执行卖出操作 - **白名单特权**:开发者自身地址被加入白名单,可正常卖出获利,而其他用户被锁定持仓 ## 技术特征总结 | 攻击向量 | 技术特征 | 检测方法 | |---------|---------|---------| | 恶意Burn | Burn函数可指定目标地址 | 检查Burn函数参数是否包含`to`地址 | | Permit绕过 | 签名验证存在硬编码哈希比较 | 审计`checkSigner`逻辑 | | 动态税率 | 税率修改权限未撤销 | 检查合约是否保留`setTaxRate`函数 | | 黑白名单 | 存在`addToBlacklist`/`removeFromWhitelist`函数 | 检查权限控制函数 | ## 风险检测工具推荐 由于各检测工具的检测方法、侧重点及覆盖链范围不同,建议采用多工具交叉验证: - **Honeypot.is**:专注蜜罐代币检测,支持多链 - **Token Sniffer**:提供合约代码静态分析 - **OKX Web3 DEX**:集成实时风险评估 - **GoPlus Token Security**:支持动态安全评分 - **De.Fi Scanner**:提供全面的合约审计报告 ## 操作建议 1. **交易前必查**:使用至少2-3个独立检测工具验证代币安全性 2. **关注权限**:检查合约是否保留 `mint`、`burn`、`setTax` 等特权函数 3. **验证流动性**:确认流动性池是否已锁定,锁定期是否合理 4. **社区验证**:查阅项目社交媒体,确认是否存在用户投诉或争议 5. **测试交易**:先进行极小金额的买卖测试,观察是否正常执行 ## 结语 貔貅盘的本质是利用智能合约的权限设计缺陷,通过隐藏的后门函数实现资产控制。用户在参与链上交易时,应保持“零信任”心态,对任何未经验证的代币保持警惕。技术手段虽能降低风险,但最有效的防护仍然是谨慎的投资决策。 --- **本文由查找币安全团队整理发布**
在论坛中查看和回复