Reverse engineering di un hash globale saltato da testo in chiaro noto e hash

2

Prima di tutto non sto chiedendo cosa sia un hash o qualcos'altro. Cercherò di spiegare quello che sto cercando in modo chiaro:

Diciamo che ho un dump di un database, tutte le password di questo database sono hash, le password sono lunghe 40 byte, quindi l'algoritmo utilizzato è basato su sha-1. Tuttavia, so anche che c'è un sale (sha1($pass.$salt)) o sha1($salt.$pass) . Sono in grado di registrarmi sul sito web di destinazione con un nome utente e una password di mia scelta. Una volta terminato, sono in grado di vedere qual è la mia password con hash e il suo valore di testo normale (ad esempio, se registro sul sito Web con la password "123") e se poi eseguo il dump del database per controllare l'hash di la mia password (quindi nel mio caso 123) avrò il suo valore hash. Ma non ho il sale. Sulla base di ciò che ho, posso indovinare / forza bruta il sale usato, che è corretto nel codice dell'applicazione mirato (non riesco a vederlo).

    
posta marc Khayle 03.08.2015 - 02:44
fonte

1 risposta

2

Quanto sono buone le tue capacità di programmazione?

Non sarebbe troppo difficile scrivere un programma o uno script che scorre su tutte le stringhe di sale possibili, prendi la tua password "123" e prova sha1($pass.$salt) e sha1($salt.$pass) . Se l'hash che esce corrisponde a quello nel database, hai trovato il tuo sale.

Un possibile problema è sapere esattamente quale funzione hash hanno usato. Hai detto

they used algorithm based on sha-1

Sai esattamente di cosa si tratta, o hai intenzione di indovinare? È normale che una password abbia inserito la password ed eseguito sha-1 non una volta, ma 100, o 1.000, o 10.000, o 100.000 ... volte prima di inserire l'hash nel database. Senza sapere esattamente come hanno fatto l'hashing, avrai molte più combinazioni nel tuo programma e potrebbe richiedere molto tempo per essere eseguito.

    
risposta data 03.08.2015 - 03:45
fonte

Leggi altre domande sui tag