Autor: 23pds & Thinking

Bearbeitet von: Sherry

Hintergrund

Gestern, als ich noch Material zu den APT-Angriffen sortierte, kam Shan Ge (@im23pds) plötzlich aufgeregt zu meinem Arbeitsplatz: "Thinking, ich habe ein interessantes Projekt entdeckt, das CZ häufig nutzt, vielleicht können wir mit 0 Kosten CZ Hallo sagen." Also haben wir schnell einige mögliche Schwachstellen entworfen:

  • Übernahme von CZs Konto bei ReachMe;

  • Ändern Sie CZs Einstellungen bei ReachMe;

  • Es kostet kein Geld, um CZ eine Nachricht zu senden und umgeht die Einschränkung, dass es 1 BNB kostet, ihm eine Nachricht zu senden.

Ungefähr 10 Minuten später haben wir festgestellt, dass wir eine Schwachstelle bei ReachMe.io finden können, die es uns ermöglicht, kostengünstig mit beliebigen Benutzern Hallo zu sagen, also haben wir sofort das Projektteam kontaktiert und die Details zur Schwachstellenverifizierung bereitgestellt. Das Projektteam hat die Schwachstelle ebenfalls sofort behoben und uns zur erneuten Prüfung kontaktiert. Ein Lob an das ReachMe-Team für ihre ernsthafte und gründliche Haltung gegenüber Sicherheitsfragen!

https://x.com/SlowMist_Team/status/1905212712956665896

Darüber hinaus ist das Slow Mist-Sicherheitsteam stolz darauf, von CZ und dem Team des ReachMe-Projekts Anerkennung zu erhalten.

https://x.com/cz_binance/status/1905240886986039437

Entdeckungsprozess

ReachMe.io ist eine kostenpflichtige Chat-Plattform auf der BNB-Chain, die darauf abzielt, KOLs (Key Opinion Leaders) mit Fans über ein Kryptowährungszahlungssystem zu verbinden. Benutzer müssen BNB bezahlen, um KOLs private Nachrichten zu senden, KOLs erhalten 90 % der Gebühren (Plattformgebühr 10 %); wenn der KOL innerhalb von 5 Tagen nicht antwortet, erhält der Benutzer 50 % zurück.

Am 27. März 2025 hat der Binance-Gründer CZ sein X-Profil mit folgendem geändert: "DM: https://reachme.io/@cz_binance (Gebühren gehen an Wohltätigkeit)", was bedeutet: "DM mich auf ReachMe, die Gebühren gehen an Wohltätigkeit."

Wir sehen, dass es 1 BNB kostet, CZ Hallo zu sagen, also haben wir einige Ideen entwickelt und versucht, herauszufinden, wie wir die Einschränkung von 1 BNB umgehen können, um CZ Hallo zu sagen.

图片Nach einigen Untersuchungen mit Shan Ge haben wir festgestellt, dass ReachMe beim Senden von Nachrichten an beliebige KOLs über die Schnittstelle " /api/kol/message" eine Zusammenfassungsinformation für die Nachricht generiert, die das Feld "_id" enthält. Dieses Feld wird beim Senden von Nachrichten an den On-Chain-Vertrag Funktion: deposit(string identifier, address kolAddress) verwendet, was dem Feld "_identifier" entspricht.

Und die BNB, die mit der Nachricht an KOL gesendet wird, ist tatsächlich die Menge an BNB, die die Vertragsfunktion: deposit mit sich bringt, also haben wir eine Transaktion konstruiert, die die Nachricht "Hi CZ" mit dem "_identifier" sowie CZs Adresse und 0,01 BNB (mindestens 0,001 BNB erforderlich) an den Vertrag sendet.

Da ReachMe zu Beginn der Gestaltung die vorab festgelegten Kosten für KOL-Nachrichten nicht im Vertrag überprüft hat (vielleicht um KOLs die Anpassung der Nachrichtenpreise und die Einsparung von Gasgebühren zu erleichtern?), kann man die 1 BNB-Beschränkung umgehen, indem man den Frontend-Code ändert, das Netzwerkantwortpaket modifiziert oder direkt mit dem Vertrag interagiert. Dies liegt daran, dass der Server bei der Abfrage von On-Chain-Transaktionen auch die Überprüfung der Nachrichtenpreise und der BNB-Menge in den On-Chain-Transaktionen ausgelassen hat.

Wir haben also etwa 10 Minuten gebraucht, um erfolgreich die Regel zu umgehen, dass es 1 BNB kostet, mit CZ zu sprechen, und konnten CZ nur mit 0,01 BNB Hallo sagen.

图片Darüber hinaus ist es erwähnenswert, dass es tatsächlich noch tiefere Ausnutzungen gibt, wie: CZ interessante Nachrichten zu senden, um Phishing durch Spearfishing zu betreiben? Angesichts der großen Einfluss von CZ haben wir diese Testphase später aufgegeben und alle sollten auch auf die Sicherheit achten, um Phishing zu vermeiden.

Zusammenfassung

Bei der Kombination von zentralisierten und dezentralisierten Produktdesigns treten häufig Inkonsistenzen zwischen On-Chain- und Off-Chain-Sicherheitsprüfungen auf. Daher können Angreifer durch die Analyse der On-Chain- und Off-Chain-Interaktionsprozesse bestimmte Prüfungsbeschränkungen umgehen. Das Slow Mist-Sicherheitsteam empfiehlt, dass Projektteams notwendige Sicherheitsprüfungen in On-Chain- und Off-Chain-Codes synchronisieren, um die Möglichkeit des Umgehens zu vermeiden. Gleichzeitig wird empfohlen, ein professionelles Sicherheitsteam für Sicherheitsprüfungen zu engagieren, um potenzielle Sicherheitsrisiken zu entdecken und zu verhindern.