我们成功发现并验证了 ReachMe.io 平台存在的低成本漏洞,允许用户无需支付 1 BNB 费用即可与 CZ 等任意用户进行私信互动。这一重要发现让我们迅速联系了项目方团队,并详细提供了漏洞验证过程。作者:23pds & Thinking 编辑:Sherry
背景
昨天,当我在整理 APT 攻击相关资料时,山哥(@im23pds)突然兴奋地来到我身边:”Thinking,我发现了一个很有趣的项目,CZ 在高频使用,我们或许可以 0 成本和 CZ Say Hi。”这一发现立即引起了我们的高度关注,我们迅速梳理出几个可能的漏洞方向:一是劫持 CZ 在 ReachMe 的账号,二是修改 CZ 的账户设置,三是绕过 1 BNB 的消息费用限制,实现免费与 CZ 互动。
经过约 10 分钟的深入分析,我们成功定位到 ReachMe.io 平台存在一个低成本与任意用户私信的漏洞。在确认漏洞后,我们第一时间向项目方团队提交了详细的漏洞验证报告。令人赞赏的是,ReachMe 团队展现了高度的专业性和责任感,在收到报告后迅速修复了该漏洞,并主动与我们联系进行复测。这种对安全问题的严谨态度值得我们高度评价!(https://x.com/SlowMist_Team/status/1905212712956665896) 此外,慢雾安全团队也荣幸地获得了 CZ 和 ReachMe 项目方团队的致谢。(https://x.com/cz_binance/status/1905240886986039437)
发现过程
ReachMe.io 是一个基于 BNB Chain 的创新性付费聊天平台,通过加密货币支付机制连接 KOL(关键意见领袖)与粉丝。平台采用独特的商业模式:用户向 KOL 发送私信需支付 1 BNB,其中 KOL 获得 90% 费用(平台抽取 10%);若 KOL 5 天内未回复,用户可获 50% 退款。2025 年 3 月 27 日,币安创始人 CZ 将其 X 账号简介更新为:”DM: https://reachme.io/@cz_binance (fees go to charity)”,即”在 ReachMe 上私信我,费用将用于慈善事业”。
基于 CZ 每次私信需要 1 BNB 的设定,我们开始探索如何绕过这一费用限制。经过与山哥的深入研讨,我们发现 ReachMe 在向 KOL 发送消息时会通过 “/api/kol/message” 接口生成消息概要信息,其中包含 “_id” 字段。该字段会附加到链上合约的 Function: deposit(string _identifier,address _kolAddress) 使用,对应 _identifier 字段。同时,给 KOL 发送消息时附带的 BNB 实际上是调用合约 Function: deposit 时附带的 BNB 数量。
我们巧妙地构造了一笔交易,将 “Hi CZ” 消息对应的 “_identifier” 和 CZ 的地址,并附带 0.01 BNB(实际最低仅需 0.001 BNB)发送给合约。由于 ReachMe 在设计时并未将 KOL 发消息的成本预设到合约中进行检测(可能是为了方便 KOL 调整消息价格并节省 Gas 费),因此可以通过修改前端代码、篡改网络响应包或直接与合约交互来绕过 1 BNB 的限制。这是由于服务端在检索链上交易时也遗漏了消息价格与链上交易 BNB 数量的匹配检查。
经过约 10 分钟的精准操作,我们成功绕过了与 CZ 对话需要 1 BNB 的规则,仅花费 0.01 BNB 就实现了与 CZ 的私信互动。此外,我们还发现更深层次的利用方式,例如通过发送钓鱼消息进行攻击。但考虑到 CZ 的重要影响,我们决定放弃进一步测试,并提醒广大用户注意防范此类钓鱼行为。
总结
这类结合中心化与去中心化特征的产品设计,常常会出现链上与链下安全检查不一致的情况。攻击者可以通过分析链上链下的交互流程,找到绕过检查限制的突破口。慢雾安全团队建议项目方尽可能在链上和链下代码中同步必要的安全检查项,从源头上避免漏洞风险。同时,强烈建议项目方聘请专业的安全团队进行安全审计,及时发现并防范潜在的安全隐患。
本文网址:http://www.idea2003.cn/news/2589.html