WordPress 4.7.2 Cookie di autenticazione Brute-force

0

Recentemente mi sono imbattuto in un sito WordPress (v 4.7.2) con un file wp-config.php esposto, all'interno del quale erano accessibili i segreti delle chiavi di autorizzazione del server di testo normale.
Dopo aver letto l'articolo di Mike Czumak sulla generazione di cookie WordPress, capisco a un alto livello come può funzionare la generazione dei cookie di sessione di autenticazione WP: link

Gli input dipendenti pertinenti necessari per il processo brute-force sono un ID utente WordPress, un nome server e i segreti AUTH del server validi da wp-config.php.

L'articolo si applica comunque a WordPress 3.9. Mi chiedo se l'attacco di forza bruta descritto nell'articolo sia possibile nelle versioni più recenti. Ho provato il POC e ho scoperto che i cookie di autenticazione versione 3.9 erano in un formato più breve di quelli richiesti per 4.7.2.
Il confronto tra il codice sorgente di WordPress rivela un ulteriore parametro $token utilizzato per generare $auth_cookie .

3.9

$auth_cookie = wp_generate_auth_cookie($user_id, $expiration, $scheme);
$logged_in_cookie = wp_generate_auth_cookie($user_id, $expiration, 'logged_in');

4.7.2

if ( '' === $token ) {
    $manager = WP_Session_Tokens::get_instance( $user_id );
    $token   = $manager->create( $expiration );
}

$auth_cookie = wp_generate_auth_cookie( $user_id, $expiration, $scheme, $token );
$logged_in_cookie = wp_generate_auth_cookie( $user_id, $expiration, 'logged_in', $token );

Sono in procinto di segnalare il problema ai proprietari del sito. Non sono stato in grado di seguire completamente il più recente codice PHP (> 3.9) e quindi vorrei sapere se lo stesso tipo di attacco brute force di generazione dei cookie è fattibile sulla versione 4.7.2?

    
posta user1330734 08.08.2017 - 06:34
fonte

1 risposta

2

La tua domanda riguarda WP 4.7.2, ma la versione corrente è 4.8.1. Usa la versione corrente, sempre. La mia risposta è per 4.8.1.

In poche parole, il vecchio algoritmo di hashing era md5 e il nuovo algoritmo utilizza sha256 (preferito) e sha1 se sha256 non è disponibile. Il codice aggiornato ha aumentato lo spazio di ricerca per la forzatura bruta, il che aumenta il tempo necessario per trovare una corrispondenza . Ma stanno ancora generando questi hash basati su criteri prevedibili.

Quindi, sì, la forzatura bruta ora richiederà più tempo (ordini di grandezza più lunghi) e, in base alla corrente potenza di calcolo, è probabilmente computazionalmente impossibile anche se utilizziamo input prevedibili.

Nonsonounfandilorousandomaterialeprevedibilepergenerarequestohashoilcookie,perchériducesignificativamentelospaziodiricerca.Maècertamentemigliorediquellocheera.EpoichéilsitoèWordpress,l'unicacosachepuoifareètenerlaaggiornata.

Guardandoquestocodice,aproposito,sembrachenonabbianoaggiornatol'usodeglihashMD5altrove.Certo,hmacconsaleèsignificativamentepiùsicurodiunsempliceMD5,maMD5èmoltorottoemisembracheilcostocomputazionaledell'utilizzodiSHA1suMD5siatrascurabile.NonseisicurodelmotivopercuinonhannoaggiornatotuttiglihashsualmenoSHA1senonsuSHA256.

    
risposta data 08.08.2017 - 12:55
fonte

Leggi altre domande sui tag