Am 14. März 2024 wurde laut einer Frühwarnung des Sicherheitsüberwachungssystems SlowMist MistEye das dezentrale Kreditprotokoll MOBOX auf der Optimism-Kette angegriffen, was zu einem Verlust von etwa 750.000 US-Dollar führte. Das SlowMist-Sicherheitsteam analysierte den Angriffsvorfall und teilte die Ergebnisse wie folgt mit:
(https://twitter.com/SlowMist_Team/status/1768167772230713410)
Angreifer Adresse:
0x4e2c6096985e0b2825d06c16f1c8cdc559c1d6f8
0x96f004c81d2c7b907f92c45922d38ab870a53945
Angegriffene Vertragsadresse:
0xae 7BC13A7838E
Angreifende Transaktion:
0x4ec3061724ca9 f0b8d400866dd83b92647ad8c943a1c0ae Es gibt zwei Hauptpunkte dieses Angriffs: Der Angreifer nutzt die Schwachstelle der Funktion „borgen()“ im Vertrag aus. Bei jedem Aufruf dieser Funktion wird die Belohnungsverteilung an die Adresse des Empfehlungsgebers ausgelöst. Da die Belohnungsberechnung anhand der Anzahl der übertragenen Token ermittelt wird, kann der Angreifer den Betrag der nächsten Kreditaufnahme erhöhen, indem er die Belohnung erneut an den Referrer zurück auf den angegriffenen Vertrag überträgt. Die zweite besteht darin, dass bei jedem Aufruf der Funktion „borg()“ ein Teil der MO-Token im Pool verbrannt wird, sodass der Preis der MO-Token kontinuierlich steigt. Am Ende kann der Angreifer durch kontinuierliches Ausleihen und Ausleihen Gewinne erzielen Belohnungen überlagern.
Wir können feststellen, dass der gesamte Angriffsprozess hauptsächlich über die Schleife erfolgt, die die Funktion „borg()“ mit der Schwachstelle aufruft, dann sofort „redeem()“ zur Einlösung aufruft und dann die Token dem zuweist Empfehlungsgeber Transfer zurück zum Angriffsvertrag.
Wenn wir die Funktion „borg()“ zur Analyse verfolgen, können wir feststellen, dass bei jedem Aufruf dieser Funktion ein Teil der MO-Token im Pool verbrannt wird.
Der ausgeliehene USDT-Betrag wird jedoch auf der Grundlage des Preises der MO-Tokens im Pool berechnet. Da der Preis der MO-Tokens aufgrund der Zerstörung weiter steigt, kann der Angreifer schließlich eine kleine Menge MO-Tokens ausleihen Anzahl der ausgegebenen USDT-Tokens.
Darüber hinaus erhält eine Empfehlungsadresse bei jeder Ausleihe eine Dividendenbelohnung, und die Funktion wird basierend auf der Menge der übergebenen MO-Token berechnet.
Da jedoch auch die Referrer-Adresse vom Angreifer kontrolliert wird (0x96f004c81d2c7b907f92c45922d38ab870a53945), kann der Angreifer diesen Teil der Belohnung nach Abschluss des Kreditvorgangs zurücküberweisen und so den Betrag des nächsten Kredits und die Dividende überlagern belohnen .
Nach dem oben genannten Zyklusvorgang erhöhte der Angreifer den Preis der MO-Tokens und konnte schließlich eine sehr kleine Menge MO-Tokens verwenden, um eine große Menge USDT im Vertrag auszuleihen, was zu einem direkten Ungleichgewicht aller Exchange-Transaktionen führte USDT aus dem Pool nehmen und mit Gewinn verlassen.
Der Kern dieses Angriffs besteht darin, dass der Angreifer die Funktion „borg()“ verwendet, um einige der Token im Pool zu verbrennen, kontinuierlich Vermögenswerte auszuleihen, den Preis der Token im Pool zu erhöhen, und Empfehlungen erhalten. Menschen belohnen Menschen, übertragen die Token dann zurück und leihen sie erneut aus, wodurch kontinuierlich Belohnungen hinzugefügt und Preise manipuliert werden. Das SlowMist-Sicherheitsteam empfiehlt den Projektparteien, Sperrfristen für ähnliche Funktionen hinzuzufügen und bei der Gestaltung des Preismodells für die Kreditvergabe mehrere Faktoren zu berücksichtigen, um zu verhindern, dass ähnliche Vorfälle erneut auftreten.
Das obige ist der detaillierte Inhalt vonRezension: MOBOX Hacked Analysis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!