Vale, no soy ningún experto en WordPress y no sabía hasta hace un par de minutos que existía un script de emergencia a prueba de tontos para recuperar la contraseña de administrador de tu WordPress.
El miércoles, MetropoliBlog fue víctima de la terrible vulnerabilidad de la versión 2.8.3. La culpa la tenemos nosotros que lo sabíamos con anterioridad y no lo corregimos a tiempo. Para entonces ya estaba disponible la actualización 2.8.4, pero alguien ya nos había jugado mala-leche. A toda velocidad y un poco nervioso de que algo malo pase, implementé lo primero que se me ocurrió:
require('wp-includes/class-phpass.php'); $wp_hasher = new PasswordHash(8, TRUE); $hashPassword = $wp_hasher->HashPassword('NUEVA_CLAVE'); echo "\n$hashPassword\n\n";
El script lo guardé donde WordPress y lo ejecuté desde consola: php reset-password.php o desde el navegador. El resultado es un Hash listo para guardar en la base de datos de WordPress. Funcionó, recuperamos WordPress y actualizamos.
Resulta que con éstas nuevas versiones (no se desde cual exactamente) las contraseñas no son encriptadas simplemente con MD5, sino que tiene un par de arreglos para hacer más seguro el sistema. De hecho, si ejecutas reset-password.php varias veces, siempre te dará un Hash diferente. Es por eso que ya no se puede hacer solo un UPDATE con MD5 a la base de datos, pero de esta forma sencilla obtenemos el Hash que si podemos guardar en la base de datos.
Ésta fue mi manera, como he dicho hay mejores formas de recuperar la contraseña. En cualquiera de los casos necesitas mínimo el acceso FTP y a la base de datos (phpMyAdmin por ejemplo).
Moraleja: Que no te dé versionítis, pero si sabes de un problema grave, actualiza lo más rápido que puedas.