
Quelle: Beosin
Am 30. Januar 2024, Peking -Zeit, laut Beosins Eagleeye Security Risiko -Überwachung, Frühwarn- und Blockierungsplattformüberwachung.Das Defi -Protokoll mim_spell wurde von Hackers Lightning Loan angegriffen, was zu einem Verlust von über 6 Millionen US -Dollar führte.Gegenwärtig wird der Angreifer die gestohlenen Mittel ausgetauscht, um sie an die Angreifer zu übertragen.
Sicherheitsanalyse
Der Hauptgrund für diesen Vorfall istDer Angreifer verwendet den Project Party Contract, um den Aufwärtsalgorithmus zu verwenden und den Parameter auf 1 zu steuern. Die maximale Fehlersteuerung, die nach oben aufgenommen wird, wird verwendet, was zu Ungleichgewichten im Hauptbuch führt.
Es gibt zwei Funktionen im Vertrag, die Kredite und Rückzahlungen sind, eine, die Geld aus dem Vertrag ausleihen soll, und der andere ist die Zahlung des Vertrags an den Vertrag.
Die Ausleihefunktion gibt den Kreditbetrag an, und der Schuldenwert wird durch den Anteilsumwandlung berechnet, und der Gesamtschuldenwert des Anrufers wird aktualisiert.Wie in der folgenden Abbildung gezeigt, verwendet der ADD -Algorithmus des Vertrags hier nach oben.
Die Ausleihefunktion gibt den Rückzahlungsschuldenwert an, und der Betrag der Rückzahlung wird durch die proportionale Umwandlung berechnet, und der Rückzahlungsbetrag wird in den Vertrag übertragen.Wie in der folgenden Abbildung gezeigt, verwendet der Subalgorithmus des Vertrags hier immer noch nach oben.
Verstehen Sie den Prozess der Kreditaufnahme und Rückzahlung. Lassen Sie uns sehen, wie Hacker die Sicherheitsanfälligkeit nutzen.
Der Hacker kontrollierte zunächst den Betrag und den Schuldenwert des Vertrags auf 0 und 97 (wie die Kontrolle im nächsten Abschnitt eingeführt wird).
Als nächstes werden die Ausleihen- und Rückzahlungsfunktionen nicht gestoppt, und die Ausleihen- und Rückzahlungswerte betragen 1. Schließlich wird der Betrag der Kredit- und Schuldenwert auf 0 und 1200801838188666665215049728 kontrolliert, was zu einem ernsthaften Ungleichgewicht führt.
Gemäß den obigen Coderegeln (elastic = 0, Base = 97), wenn der Angreifer die Kredite einmal aufruft und in 1 übergeben wird, wird das zwei Hauptbuch elastisch = 1, Basi zur Wertsynchronisation.
Als nächstes ruft der Angreifer die Rückzahlungsfunktion auf 1 und die Subfunktion auf.Es ist zu erkennen, dass zu dieser Zeit elastisch unverändert ist, aber die Basis verdoppelt sich.
Der Angreifer verwendet mehrere obige Methoden, um Elastizität = 0, Basis = 1200801838106866665215049728 zu bringen.Schließlich lieh sich einen Vertrag mit mehr als 5 Millionen Mim durch eine Kredite.
Angriffsprozess
Verstehen Sie die Funktion der Funktion, schauen wir uns an, wie der Angreifer den Angriff ausführt (eine der Transaktionen als Beispiel).
1. Der Angreifer lieh zuerst 300.000 MIMs.
2. Anschließend fragte der Angreifer den Betrag und den Schuldenwert in der Rückruffunktion.
3. Als nächstes ruft der Angreifer die Rückzahlungsfunktion auf und gab 240.000 MIM -Token zurück, um die Gummibänder zu kontrollieren.
4. Als nächstes kehrte der Angreifer die Verbindlichkeiten anderer Benutzer durch die Rückzahlungsfunktion zurück und kontrollierte schließlich die Höhe des Kredits und des Schuldenwerts auf 0 und 97.
5. Der Angreifer schafft einen neuen Vertrag und kontrolliert die Höhe der Kredit- und Schuldenwerte auf 0 und 12008018381886665215049728, indem sie anspricht und zurückzahlen.
6. Schließlich liehen 5 Millionen MIM 5 Millionen MIM über ein Kredit- und Rückzahlungsdarlehen aus.
Fondsverfolgung
Zum Zeitpunkt des Drucks werden die gestohlenen Mittel von über 6 Millionen US -Dollar gegen ETH ausgetauscht, und die Hacker -Adresse ist nicht bewegt.