Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
hashes — Magic Hashes – PHP-Hash-"Kollisionen" | Kitploit
Tools/GitHubGitHub/spaze/hashes
SchwachstellenanalyseHash-AnalyseWebsicherheitKryptographieLernen & BildungKuratierte Ressourcen
GitHubspaze/hashes

hashes

Magic Hashes – PHP-Hash-"Kollisionen"

Repository anzeigen
83510367vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Magische Hashes – PHP-Hash-„Kollisionen"

Registriere dich mit Passwort 1 und melde dich dann mit Passwort 2 an. Wenn du drin bist, verwendet der Speicher den angegebenen Algorithmus, um das Passwort zu hashen, und PHP verwendet ==, um sie zu vergleichen (für MD5, SHA-1 und Klartext).

MD5, SHA-1, SHA-224, SHA-256 und weitere

Für MD5, SHA-1 und die SHA-2-Familie wird der seit langem bekannte Trick verwendet, dass in PHP '0e1' == '00e2' == '0' gilt (es ist eigentlich ein dokumentiertes Feature, siehe PHP-Typvergleichstabellen & Gleitkommazahlen); er wird hier nur für praktische Zwecke genutzt. Jedes Passwort matcht jedes andere Passwort aus der Liste. Das ist ein anderer Trick als ganzzahlige Strings, die in Gleitkommazahlen überlaufen, sieh dir einfach den Unterschied zwischen diesen beiden Zeilen an.

Das sind alle Algorithmen mit magischen Hashes:

  • CRC32
  • CRC32b
  • FNV-1a/32
  • FNV-1a/64
  • FNV-1/32
  • FNV-1/64
  • HAVAL-128,3
  • HAVAL-128,4
  • HAVAL-128,5
  • HAVAL-160,3
  • HAVAL-160,4
  • HAVAL-160,5
  • JOAAT
  • MD2
  • MD4
  • MD5
  • MD5-double md5(md5(password))
  • MurmurHash3_x86_32/Murmur3a
  • MurmurHash3_x86_128/Murmur3c
  • MurmurHash3_x64_128/Murmur3f
  • PHOTON-80/20/16
  • PHOTON-128/16/16
  • PHOTON-160/36/36
  • Quark u-Quark-136
  • RIPEMD-128
  • RIPEMD-160
  • SHA-1
  • SHA-224
  • SHA-256
  • SPONGENT-88/80/8
  • SPONGENT-88/176/88
  • SPONGENT-128/128/8
  • SPONGENT-128/256/128
  • Tiger/128,3
  • Tiger/128,4
  • Tiger/160,3
  • Tiger/160,4
  • Tiger/192,3
  • xxHash-XXH32
  • xxHash-XXH64
  • xxHash-XXH3_64bits
  • xxHash-XXH3_128bits

Um @0xb0bb zu zitieren: „Es gibt andere Anwendungen für magische Hashes außer Passwortvergleichen (wie Caching-Ebenen oder Daten, die aus der Ausgabe einer Hash-Funktion abgeleitet werden), bei denen diese bekannten unsicheren, weniger bekannten und Pseudo-Hash-Algorithmen leichter zu finden sind."

Plaintext

Für Klartext werden verschiedene Konvertierungstricks verwendet. Das erste Passwort matcht nur das zweite. Die Tricks sind nach PHP-Versionen gruppiert, die sie ermöglichen.

bcrypt

bcrypt kürzt Passwörter auf eine maximale Länge von 72 Zeichen. Die Passwörter matchen, wenn die ersten 72 Zeichen beider Passwörter übereinstimmen.

descrypt

descrypt (traditionelles UNIX-DES-crypt) kürzt Passwörter auf eine maximale Länge von 8 Zeichen. Die Passwörter matchen ebenfalls, wenn die ersten 8 Zeichen beider Passwörter übereinstimmen, siehe Abschnitt „Allgemeiner Quervergleich".

PBKDF2-HMAC-SHA1, PBKDF2-HMAC-SHA224, PBKDF2-HMAC-SHA256

Wenn du ein Passwort verwendest, das länger als 64 Bytes ist, und es mit PBKDF2-HMAC-SHA1 hashest, wird es zuerst mit SHA1 vorab gehasht, sodass PBKDF2-HMAC-SHA1(password1) === PBKDF2-HMAC-SHA1(password2) gilt, weil sha1(password1) === bin2hex(password2). Ein ähnliches Vorab-Hashing wird bei PBKDF2-HMAC-SHA224 und PBKDF2-HMAC-SHA256 angewendet.

Tiger/192,3

Derzeit gibt es dank Norbert Tihanyi in jedem nur einen magischen Hash; hoffentlich werden in Zukunft weitere hinzugefügt.

Fazit

Verwende === beim Vergleich von allem* in PHP, nicht ==. Verwende außerdem password_hash() und password_verify() für das Passwort-Hashing in PHP, nicht MD5 oder SHA-1. *Verwende hash_equals() beim Vergleich von Hashes.

Historie

Alles begann mit diesem Tweet. Ich habe QNKCDZO und 240610708 im Februar 2014 generiert, und es hat sich seither über das gesamte Internet verbreitet. Googel einfach danach.

Tool herunterladen