Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hashes — Magic hashes – « collisions » de hachage PHP | Kitploit
Outils/GitHubGitHub/spaze/hashes
Analyse des VulnérabilitésAnalyse de HachageSécurité WebCryptographieApprentissage et ÉducationRessources Organisées
GitHubspaze/hashes

hashes

Magic hashes – « collisions » de hachage PHP

Voir le dépôt
83510367il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Hashes magiques – « collisions » de hachage PHP

Inscrivez-vous avec mot de passe 1 puis connectez-vous avec mot de passe 2. Si vous y arrivez, alors le stockage utilise l'algorithme spécifié pour hacher le mot de passe et PHP utilise == pour les comparer (pour MD5, SHA-1, et le texte en clair).

MD5, SHA-1, SHA-224, SHA-256 et autres

Pour MD5, SHA-1 et la famille SHA-2, cela utilise l'astuce bien connue (c'est en réalité une fonctionnalité documentée, voir tables de comparaison de types PHP et nombres à virgule flottante) selon laquelle pour PHP '0e1' == '00e2' == '0', simplement utilisée à des fins pratiques. Tout mot de passe correspond à n'importe quel autre mot de passe de la liste. C'est une astuce différente des chaînes intégrales débordant en nombres à virgule flottante, il suffit de repérer la différence entre ces deux lignes.

Voici tous les algorithmes avec des hashes magiques :

  • 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

Pour citer @0xb0bb, « il existe d'autres applications pour les hashes magiques en dehors des comparaisons de mots de passe (comme les couches de cache ou les données dérivées de la sortie d'une fonction de hachage) où ces algorithmes connus comme non sécurisés, moins connus et pseudo-hash peuvent être trouvés plus facilement. »

Plaintext

Pour plaintext, cela utilise diverses astuces de conversion. Le premier mot de passe correspondra uniquement au second. Les astuces sont regroupées par versions de PHP les autorisant.

bcrypt

bcrypt tronque les mots de passe à une longueur maximale de 72 caractères. Les mots de passe correspondent si les 72 premiers caractères des deux mots de passe correspondent.

descrypt

descrypt (crypt DES UNIX traditionnel) tronque les mots de passe à une longueur maximale de 8 caractères. Les mots de passe correspondent également si les 8 premiers caractères des deux mots de passe correspondent, voir la section « General cross-check ».

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

Si vous utilisez un mot de passe de plus de 64 octets et le hachez avec PBKDF2-HMAC-SHA1, il est d'abord pré-haché avec SHA1, donc PBKDF2-HMAC-SHA1(password1) === PBKDF2-HMAC-SHA1(password2) parce que sha1(password1) === bin2hex(password2). Un pré-hachage similaire est appliqué dans le cas de PBKDF2-HMAC-SHA224 et PBKDF2-HMAC-SHA256.

Tiger/192,3

Pour l'instant, il n'y a qu'un seul hash magique dans chacun grâce à Norbert Tihanyi, on espère que d'autres seront ajoutés à l'avenir.

Conclusion

Utilisez === pour comparer quoi que ce soit* en PHP, pas ==. Et utilisez password_hash() et password_verify() pour le hachage des mots de passe en PHP, n'utilisez pas MD5 ou SHA-1. *Utilisez hash_equals() pour comparer les hashes.

Historique

Tout a commencé avec ce tweet, j'ai généré QNKCDZO et 240610708 en février 2014 et cela s'est depuis répandu partout sur les intertubes. Il suffit de rechercher sur Google.

Télécharger l’outil