Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
hashes — Hash magici – "collisioni" di hash PHP | Kitploit
Strumenti/GitHubGitHub/spaze/hashes
Analisi delle VulnerabilitàAnalisi HashSicurezza WebCrittografiaApprendimento e FormazioneRisorse Curate
GitHubspaze/hashes

hashes

Hash magici – "collisioni" di hash PHP

Vedi Repository
835103671 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Hash magici – "collisioni" di hash PHP

Registrati con password 1 e poi accedi con password 2. Se riesci ad accedere, l'archiviazione usa l'algoritmo specificato per calcolare l'hash della password e PHP usa == per confrontarle (per MD5, SHA-1 e plaintext).

MD5, SHA-1, SHA-224, SHA-256 e altri

Per MD5, SHA-1 e la famiglia SHA-2, usa il trucco noto da tempo (in realtà è una funzionalità documentata, vedi tabelle di confronto dei tipi PHP e numeri a virgola mobile) per cui in PHP '0e1' == '00e2' == '0', lo usa semplicemente per scopi pratici. Qualsiasi password corrisponde a qualsiasi altra password della lista. Questo è un trucco diverso dalle stringhe intere che traboccano in numeri a virgola mobile, basta notare la differenza tra queste due righe.

Questi sono tutti gli algoritmi con hash magici:

  • 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

Per citare @0xb0bb, "ci sono altre applicazioni per gli hash magici oltre al confronto delle password (come i livelli di cache o i dati derivati dall'output di una funzione di hash) in cui questi algoritmi noti come insicuri, meno conosciuti e pseudo-hash possono essere trovati più facilmente."

Plaintext

Per plaintext, usa vari trucchi di conversione. La prima password corrisponderà solo alla seconda. I trucchi sono raggruppati per versioni PHP che li consentono.

bcrypt

bcrypt tronca le password a una lunghezza massima di 72 caratteri. Le password corrispondono se i primi 72 caratteri di entrambe le password coincidono.

descrypt

descrypt (crypt DES UNIX tradizionale) tronca le password a una lunghezza massima di 8 caratteri. Le password corrispondono anche se i primi 8 caratteri di entrambe le password coincidono, vedi la sezione "General cross-check".

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

Se usi una password più lunga di 64 byte e la sottoponi a hash con PBKDF2-HMAC-SHA1, viene prima pre-hashata con SHA1, quindi PBKDF2-HMAC-SHA1(password1) === PBKDF2-HMAC-SHA1(password2) perché sha1(password1) === bin2hex(password2). Un pre-hashing simile viene applicato in caso di PBKDF2-HMAC-SHA224 e PBKDF2-HMAC-SHA256.

Tiger/192,3

Al momento c'è solo un hash magico in ciascuno grazie a Norbert Tihanyi, si spera che in futuro ne vengano aggiunti altri.

Conclusione

Usa === quando confronti qualsiasi cosa* in PHP, non ==. E usa password_hash() e password_verify() per l'hashing delle password in PHP, non usare MD5 o SHA-1. *Usa hash_equals() quando confronti gli hash.

Storia

Tutto è iniziato con questo tweet, ho generato QNKCDZO e 240610708 a febbraio 2014 e da allora si è diffuso in tutta la rete. Basta cercarlo su Google.

Scarica lo strumento