hacktricks/crypto-and-stego/hash-length-extension-attack.md

4.1 KiB

Hash Length Extension Attack

{% hint style="success" %} Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Zusammenfassung des Angriffs

Stell dir einen Server vor, der Daten signiert, indem er ein Geheimnis an einige bekannte Klartextdaten anhängt und dann diese Daten hasht. Wenn du weißt:

  • Die Länge des Geheimnisses (dies kann auch aus einem gegebenen Längenbereich bruteforced werden)
  • Die Klartextdaten
  • Der Algorithmus (und er ist anfällig für diesen Angriff)
  • Das Padding ist bekannt
  • Normalerweise wird ein Standard verwendet, also wenn die anderen 3 Anforderungen erfüllt sind, ist dies auch der Fall
  • Das Padding variiert je nach Länge des Geheimnisses + Daten, deshalb ist die Länge des Geheimnisses erforderlich

Dann ist es für einen Angreifer möglich, Daten anzuhängen und eine gültige Signatur für die vorherigen Daten + angehängte Daten zu generieren.

Wie?

Grundsätzlich erzeugen die anfälligen Algorithmen die Hashes, indem sie zuerst einen Block von Daten hashten und dann, aus dem zuvor erstellten Hash (Zustand), den nächsten Block von Daten hinzufügen und hashen.

Stell dir vor, das Geheimnis ist "secret" und die Daten sind "data", der MD5 von "secretdata" ist 6036708eba0d11f6ef52ad44e8b74d5b.
Wenn ein Angreifer die Zeichenfolge "append" anhängen möchte, kann er:

  • Einen MD5 von 64 "A"s generieren
  • Den Zustand des zuvor initialisierten Hashes auf 6036708eba0d11f6ef52ad44e8b74d5b ändern
  • Die Zeichenfolge "append" anhängen
  • Den Hash abschließen und der resultierende Hash wird ein gültiger für "secret" + "data" + "padding" + "append" sein

Werkzeug

{% embed url="https://github.com/iagox86/hash_extender" %}

Referenzen

Du kannst diesen Angriff gut erklärt finden unter https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks

{% hint style="success" %} Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}