Permalinks cambiados a “eval(base64_decode($_SERVER[HTTP_REFERER]”

sqlinjection

Durante el día de hoy hubo epidemia de un problema bastante curioso y preocupante. Varios usuarios han informado de un error mediante el cual todos los enlaces de sus blogs se convertían a un permalink que daba errores, en algunos casos incluso siendo detectados como virus por el software antivirus instalado en los ordenadores de los visitantes. A mi me avisó Manuel Ángel Fernández.

Más o menos lo que pasaba es que los permalinks pasaban de esto:

a esto otro:

o parecidos. Por supuesto, tales permalinks daban error, no mostrando nada al visitante.

Pues bien, esto es debido a una inyección MySQL que afecta a varias versiones de WordPress (incluida la actual), mediante el cual se pueden crear usuarios con capacidades de Administrador y hacer lo que quieran con tu sitio. Lo peor es que es complicado de verlo hasta que no te lo encuentras así.

El síntoma más claro, además del cambio de permalinks, es ir a la gestión de usuarios y fijarte si el contador de Administradores muestra un número mayor de los que en realidad hay y puedes ver en la lista. Sorprendente, pues da igual si permites registros o no en tu WordPress, se cuela.

Dirás entonces ¿y como borro un administrador que no veo ni puedo editar?. Afortunadamente se puede, pues ese administrador fantasma tendrá un ID de usuario posterior al último número de ID de usuario que veas (por orden de registro).

Digamos que, por ejemplo, el último usuario registrado, al poner el ratón sobre el enlace para editarlo, muestra esta URL:

Para editar el administrador fantasma copias esa URL y le subes un número al ID mostrado. O sea …

Te encontrarás editando un usuario que no veías y que, ¡sorpresa!, es administrador y tiene un nombre cuando menos extraño, lleno de codigos …

administrador fantasma

El nombre, como podrás ver, es código nada benigno:

Normalmente no tiene email, le añades un email ficticio al perfil y le degradas a Suscriptor (luego lo borras si quieres, desde aquí o desde la base de datos). Con ese paso ya ha perdido sus derechos de hacer lo que quiera en tu blog, pero el problema no está solucionado, por supuesto.

Como puedes imaginar, lo siguiente que hay que hacer es devolver los permalinks a su estado original, pues estarán cambiados en la página de configuración de Enlaces permanentes. Los cambias de …

a tus permalinks, por ejemplo …

Con esto ya funciona tu sitio correctamente, pero la amenaza sigue.

Hasta que haya una actualización que solucione esto (y si hay solución permanente la desconozco), te recomiendo actualizar a la última versión (no garantiza nada pues está pasando en WordPress con la 2.8.4), cambia todas las claves de administrador y, sobre todo, de la base de datos de tu WordPress, comprueba que los ficheros “index.php” vacíos de tus carpetas (wp-content, etc) realmente están vacíos y no contienen código adicional, comprueba si hay archivos que no deberían estar en tu instalación de WordPress, borra o renombra el fichero xmlrpc.php pues parece ser el principal culpable de dar entrada al problema, revisa con frecuencia la lista de administradores de tu sitio, y vuelve a cargar una versión limpia de WordPress borrando antes todos los archivos que no sepas que los has cargado tu (como la carpeta wp-content o .htaccess).

Más información:

Para finalizar, te dejo unos enlaces que te ruego revises para blindar lo máximo posible tu instalación de WordPress:

Como limpiar completamene tu sitio si ya ha sido afectado

A grandes males grandes remedios. Si tu sitio ya ha sido infectado puedes estar seguro que pronto lo estará de nuevo a no ser que salga pronto una solución. Si quieres tener ciertas garantías igual es interesante que realices una operación de limpieza profunda:

  1. Exporta todo tu contenido mediante la utilidad de exportación de WordPress y guarda la carpeta wp-content así como cualquier otra que utilices de modo manual. Revisa tu theme y carpetas de uploads, etc, antes de darlos por seguros.
  2. Cambia todas las contraseñas: ftp, base de datos. Usa contraseñas fuertes, usando caracteres alfanuméricos y símbolos
  3. Como el problema afecta a la base de datos hay que descartarla. Borra la actual y crea una nueva
  4. Borra todo el contenido de la instalación actual de WordPress (recuerda que antes has hecho backup)
  5. Instala un WordPress limpio (última versión), usando la información de la nueva base de datos recién creada
  6. Carga tu carpeta wp-content de nuevo, una vez comprobado que todo está limpio
  7. Importa los posts de tu sitio que exportaste con la utilidad de importación de WordPress
  8. Configura tu WordPress de manera segura siguiendo las instrucciones de los enlaces facilitados

Actualización:
Nos comenta Alex que en el trac está identificado el problema hace tiempo, desde la versión 2.7.1, y que el bug, relativo a llamadas “eval” está corregido en la versión 2.8.5, disponible en el trunk, o descargando y sustituyendo los ficheros classes.php y rewrite.php, o haciendo manualmente los cambios en estos archivos como se indica aquí.

Novedades:
He comprobado en varios sitios que el intruso puede actuar de varias maneras. En algunos casos no está cambiando los permalinks a “eval(base64_decode($_SERVER[HTTP_REFERER]” o similares, sino que pone – por ejemplo – los permalinks por defecto.

También revisad no solo el número de ID de usuario inmediatamente superior al que veáis. Si aún se muestra un número de administradores superior al de perfiles de admin que veis ir añadiendo números a la URL de editar usuario hasta que deis con el intruso; en algunos casos estoy viendo que se añade con IDs de usuario aleatorios, no precisamente el siguiente al existente.

AVISO: esta publicación es de hace dos años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

Valora este artículo para mejorar la calidad del blog ...

FlojitoNo está malEstá bienMe ha servidoFantástico (1 votos, promedio: 5,00 de 5)
Cargando…

Autor: Fernando

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran.Autor del libro WordPress - La tela de la araña. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera.

Comparte esta entrada en
468 ad

ESTA WEB UTILIZA COOKIES PARA OFRECER LA MEJOR EXPERIENCIA POSIBLE. SI SIGUES NAVEGANDO DAS TU CONSENTIMIENTO PARA LA ACEPTACIÓN DE COOKIES Y NUESTRA POLÍTICA DE PRIVACIDAD más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar