19
Jun 2009

Guía genérica para recuperar la contraseña de un CMS

Por i/o

En ocasiones uno llega a olvidar la contraseña del administrador de un CMS, si uno recuerda el email o el nombre de usuario, existe la posibilidad de usar la función “Recordar contraseña” que muchos CMS implementan. Sin embargo, puede suceder que uno no recuerde ningún dato o ha perdido el rastro de la dirección de correo de quien fuera el administador. También puede ser que el CMS simplemente no contemple recuperar o cambiar contraseñas.

Esta es una pequeña guía -genérica- para resetear la contraseña en un CMS que use una base de datos MySQL.

Vamos a necesitar una shell y acceso a MySQL vía shell.

1.- Nos conectamos al servidor.

user@computer:$ ssh usuario@servidor.com

2.- Nos conectamos a la base de datos.

user@computer:$ mysql -u mi_usuario -p mi_basededatos

PISTA. Si tampoco contamos con los datos para conectar a la base de datos, la mayoría de las veces los podemos encontrar en el archivo config. El nombre y la ruta de este archivo varía en cada CMS, así que habrá que buscarlo un poco. Algunas rutas son:

CMS Config
Spip /config/connect.php
Wordpress /wp-config.php
Drupal /sites/default/settings.php
OSCommerce /catalog/includes/configure.php

Ejemplo en Worpress /wp-config.php:

define('DB_NAME', 'mi_basededatos');
define('DB_USER', 'mi_usuario');
define('DB_PASSWORD', 'mi_clave');

Ejemplo en Drupal /sites/default/settings.php:

$db_url = 'mysql://mi_usuario:mi_clave@localhost/mi_basededatos';

3.- Ya conectados a la base de datos buscamos con la línea de comandos de MySQL en qué tabla pueden estar los usuarios o los administradores.

mysql> show tables;

PISTA. Por lo general las tablas tienen nombres descriptivos como ‘users’, ‘authors’, ‘administrators’, etc.

4.- Ya que ubicamos la tabla de usuarios, vemos cuál es su contenido:

mysql> SELECT * from tabla_de_usuarios;

Entonces nos mostrará los ID, nombres de usuario, las contraseñas (seguramente cifradas con MD5) y quizá otros datos dependiendo del CMS:

+----+-----------+-------------------------------------+
| id | user_name | pass                                |
+----+-----------+-------------------------------------+
|  1 | admin     | e5282b1595287ee71178042ad070d3f3    |
+----+-----------+-------------------------------------+
1 row in set (0.02 sec)

5.- Ahora vamos a actualizar el campo de la contraseña para un usuario, es posible que el usuario administrador sea el que tiene el ID = 1 o bien al ver la lista de usuarios recordemos cual era el admin o ubiquemos cúal email está asignado al admin.

mysql> UPDATE tabla_usuarios SET pass=MD5('nueva') WHERE id=1;

Donde tabla_usuarios es el nombre de la tabla de usuarios, pass es el nombre del campo de las contraseñas (MD5 cifrará la clave), nueva es la nueva contraseña que usaremos y id es el nombre del campo para el número de identificación, en este caso = 1. Lo cambiamos según se llamen los campos de la tabla usuarios del CMS. Si todo resultó bien nos regresará algo como esto:

Query OK, 0 rows affected (0.04 sec)
Rows matched: 1  Changed: 0  Warnings: 0

Ahora podemos ir a la página de login del CMS y usar los datos usuario:admin y clave:nueva.

PISTA. Puede ser que al ver la lista de usuarios y emails recordemos que tenemos control sobre alguno, o que sólo sea cuestión de cambiar el email para que quien haya olvidado la contraseña pueda cambiarla con la función “Recordar contraseña” que ofrecen algunos CMS. Usamos:

mysql> UPDATE tabla_usuarios SET email=('nuevo@correo.com') WHERE id=1;

Enlaces

. . .
  • Digg
  • del.icio.us
  • BarraPunto
  • Identi.ca
  • Meneame
  • Slashdot
  • Technorati

Un Comentario en “Guía genérica para recuperar la contraseña de un CMS”

  1. coyotita dice:

    otro truco:

    en SPIP la tabla mysql qe contiene los datos de autores, editores y administradores se llama “spip_auteurs”

Escribe un comentario

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image