Resettare la password di WordPress

password

WordPress nelle versioni precedenti alla 2.8.4 è vulnerabile, chiunque può resettare la password dell’amministratore inserendo un URL speciale (http://www.dominio.it/wp-login.php?action=rp&key[]=) nel navigatore. Questo URL accetterebbe come parametro della funzione di reset della password la nuova password, rifiutando un valore vuoto; ma key[], che è un array vuoto, viene accettato! Così la password viene resettata e la nuova viene inviata all’indirizzo email registrato dell’amministratore.Rimediare è facile, basta andare in wp-login.php e in riga 190 (per WP 2.8.3) o 169 (per versioni precedenti) sostituire:

if ( empty( $key ) )

con

if ( empty( $key)) || is_array( $key ) )

Quanto precede fa pensare però al problema generico di resettare una password di un utente di WordPress (o di qualunque CMS che usi MYSQL, ad esempio osCommerce) che se la sia dimenticata, senza costringerlo come usuale a cancellare la registrazione e a rifarla; la soluzione prevede l’uso di phpMyAdmin, strumento di amministrazione MYSQL gratuito molto diffuso.

Entrati in phpMyAdmin e scelto il giusto database, si clicca su wp_users nel pannello a sinistra per vedere tutti gli utenti; trovato  admin (oppure l’utente desiderato) nella colonna user_login e premuto il bottone modifica (quello con l’icona con la matita):

modifica password wordpress

copiate e inserite il valore 5f4dcc3b5aa765d61d8327deb882cf99 nel campo user_pass e premete il bottone Esegui.

Ora dalla pagina wp-admin basta autenticarsi con queste credenziali:

Utente: admin
Password: password

Una volta autenticati, cambiate la password in quel che più vi aggrada dal modulo Utenti della sezione di amministrazione.

Per osCommerce il procedimento è analogo e si può usare per rappresentare la password password la stringa 337719171bf040a6608c89bbef4c893d:38.