hacktricks/cryptography/hash-length-extension-attack.md
2024-02-11 01:46:25 +00:00

4 KiB

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podsumowanie ataku

Wyobraź sobie serwer, który podpisuje pewne dane, dołączając do nich tajemnicę, a następnie haszując te dane. Jeśli znasz:

  • Długość tajemnicy (może być również przeprowadzony bruteforce z określonego zakresu długości)
  • Dane jasne
  • Algorytm (i jest podatny na ten atak)
  • Padding jest znany
  • Zazwyczaj używany jest domyślny, więc jeśli spełnione są pozostałe 3 wymagania, to również jest znany
  • Padding różni się w zależności od długości tajemnicy+danych, dlatego potrzebna jest długość tajemnicy

W takim przypadku atakujący może dołączyć dane i wygenerować prawidłowy podpis dla poprzednich danych + dołączonych danych.

Jak?

Podatne algorytmy generują hashe, najpierw haszując blok danych, a następnie, z wcześniej utworzonego hasza (stanu), dodają następny blok danych i haszują go.

Wyobraź sobie, że tajemnica to "tajemnica", a dane to "dane", MD5 z "tajemnicadanych" to 6036708eba0d11f6ef52ad44e8b74d5b.
Jeśli atakujący chce dołączyć ciąg znaków "dołącz", może:

  • Wygenerować MD5 z 64 "A"
  • Zmienić stan wcześniej zainicjalizowanego hasza na 6036708eba0d11f6ef52ad44e8b74d5b
  • Dołączyć ciąg znaków "dołącz"
  • Zakończyć haszowanie, a wynikowy hasz będzie prawidłowy dla "tajemnica" + "dane" + "padding" + "dołącz"

Narzędzie

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

Referencje

Możesz znaleźć dobrze wyjaśniony ten atak na stronie https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: