热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > 软件教程 >0.01 BNB“白嫖”CZ:黑客揭秘

0.01 BNB“白嫖”CZ:黑客揭秘

来源:互联网 更新时间:2025-04-02 12:24

昨天,我正忙着整理APT攻击的相关资料,山哥(@im23pds)突然兴奋地跑到我的办公桌前:“Thinking,我发现了一个有趣的项目,CZ一直在用,我们或许可以零成本和CZ打招呼。”于是我们迅速列出了几个可能的漏洞点:

劫持CZ在ReachMe的账号;更改CZ在ReachMe的设置;不花钱给CZ发消息,绕过每条消息需支付1 BNB的限制。大约10分钟后,我们发现了一个可以在ReachMe.io上低成本与任意用户打招呼的漏洞。我们立即联系了项目团队,并提供了漏洞验证的详细信息。项目团队迅速修复了该漏洞,并联系我们进行复测。得为ReachMe团队认真严谨对待安全问题的态度点赞!

此外,慢雾安全团队很荣幸获得了CZ和ReachMe项目团队的感谢。

发现过程

ReachMe.io是一个基于BNB Chain的付费聊天平台,旨在通过加密货币支付机制连接KOL(关键意见领袖)与粉丝。用户向KOL发送私信需支付BNB,KOL可获得90%的费用(平台抽成10%);若KOL在5天内未回复,用户可获得50%的退款。

2025年3月27日,币安创始人CZ将他的X账号简介改为:“DM: https://reachme.io/@cz_binance (fees go to charity)”,即“在ReachMe上DM我,费用将用于慈善”。

我们看到,和CZ打招呼的成本是1枚BNB,于是我们设想了一些方案,并尝试如何绕过1枚BNB的限制来和CZ打招呼。

经过一番研究,我们发现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发有趣的消息,进行鱼叉钓鱼?鉴于CZ本人的影响力较大,我们后面就放弃了这部分测试,大家也多注意安全,谨防钓鱼。

总结

这类结合中心化与去中心化的产品设计,经常会出现链上和链下的安全检查不一致的情况。因此,攻击者可以通过分析链上链下的交互流程,绕过某些检查限制。慢雾安全团队建议项目方尽可能在链上和链下的代码中同步必要的安全检查项,避免被绕过的可能。同时,建议聘请专业的安全团队进行安全审计,以发现潜在的安全风险并加以防范。

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc