WordPress hackeado con el XSS UTF-7

inyección xss wordpress

inyección xss wordpress

Hoy me avisaba Jorge de que su sitio había sido hackeado mediante un sistema realmente extraño, que sustituía el código del «title» de su WordPress por una cadena de texto realmente críptica y, de paso, había cambiado la codificación del sitio a UTF-7, entre otras lindezas.

Tras el susto inicial, y unas cuantas búsquedas y llamadas a su proveedor de alojamiento, ha ido dando con el problema y la solución.

La parte visible del hackeo puede variar, y en esta búsqueda de Google tienes varios ejemplos posibles de lo «tuneada» que puede quedar tu web una vez a merced de los hackers, pero lo preocupante era el cambio de codificación, que aludía a problemas gordos.

Pues bien, buscando aquí y allá, Jorge ha dado con más de un usuario de WordPress al que le había pasado, como este, o este otro, donde ya se hacía un análisis de por donde podían ir los tiros.

Y el culpable parece ser una vulnerabilidad XSS de Apache, que permitiría cambiar la codificación, que es lo que apuntaban en WordPress Answers.

El caso es que esto está trayendo bastante debate en los foros de Unix y Apache, pues hay quien dice que el problema es de Internet Explorer, pero la realidad es que el sitio te lo hackean, se pongan como se pongan.

La vulnerabilidad sería algo así:

    1. Alguien envía un texto de comentario del tipo +ADw-script+AD4-alert(+ACI-Hello+ACI-)+ADw-/script+AD4-. Y pasa cualquier validación.
    2. La base de datos espera que todos los datos entrantes sean UTF-8 y los trata como tales. Y como las cadenas UTF-7 también son válidas en UTF-8 esto provoca un error SQL, que ni mysql_real_escape ni htmlspecialchars tocarán.
    3. WordPress envía una cabecera text/html;charset=utf-7.
    4. WordPress muestra el comentario, esperando los datos, pero como está tratado como un UTF-7 por el navegador se ejecuta el JavaScript.

    El caso es que la mayoría de los navegadores no soportan UTF-7, así que mostrarán la cadena como UTF-8 o Windows-1252, pero la realidad es que la posibilidad de que alguien te haga un destrozo a la web ejecutando códigos de este modo está ahí.

    ¿Hay solución?

    Pues afortunadamente si, y lo primero, y no digas que no te he avisado veces, es tener WordPress actualizado. Incluso a Jorge solo le ha pasado en el único WordPress que tenía sin actualizar a la última versión, así que ya sabes.

    Lo que no arregla el problema es volver a cambiar la codificación en la base de datos a UTF-8, pues aún seguirías sin saber por donde te han entrado, así que me remito a la frase anterior: busca como culpable inicial un WordPress sin actualizar, tuyo o de un vecino de hosting (eso es lo malo).

    Una vez ahí recupera una copia de seguridad reciente e instala la última versión desde cero, para asegurarte que tienes el sitio limpio de cualquier código que hayan podido inyectarte mediante JavaScript. Sigue la rutina para proteger WordPress de malware.

    En la parte de Apache, para quedarte más tranquilo, hay varios ajustes que se pueden hacer, así que habla con tu proveedor para que se asegure.

    Y nada más, si acaso que Jorge nos vaya comentando que tal le ha ido con el asunto, y nos apunte algún detalle más, o tu mismo si te ha pasado y has llegado a mejores conclusiones sobre este problema. Yo he creído importante compartir su problema y las soluciones encontradas para que estés avisado y pongas contramedidas.

    VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
    (1 votos, promedio: 5)

    ¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

    AVISO: Esta publicación es de hace 3 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.

11 comentarios en “WordPress hackeado con el XSS UTF-7”

    1. Creo que si tienes hosting compartido y alguno de tus vecinos no ha actualizado su wordpress (en caso de que lo tenga) tu tambien podrías verte afectado, pero claro, actualizando tu el tuyo estas poniendo todo de tu parte para evitarlo

  1. Patrick Muñoz

    Hola Fernando, en cuanto a lo de proteger WordPress de malware he visto que una de las cosas que recomendabas era mantener limpia la base de datos en concreto la tabla wp_options. En su momento recomendabas dos plugins para esta tarea, pero a día de hoy estos plugins llevan más de dos años sin recivir ninguna actualización, son WP-Options manager y Clean options. Trasteando por el repositorio de plugins he encontrado uno que se le parece pero no se si realiza la tarea que los dos anteriores realizaban, es el Optimize Database after Deleting Revisions. ¿Crees que este plugin realiza la función de limpiar la tabla wp_options? y si no ¿cual recomiendas ahora?
    Gracias.

      1. Patrick Muñoz

        Creo haber encontrado un que si realiza la tarea, es el WP Clean Up. Pero estaría bien que algún entendido nos lo pudiera confirmar.

  2. Yo tuve este problema hace un par de meses en el que aparecia el texto que describís como «hacked by hacker». Tuve que restaurar una copia de seguridad y volvio a ocurrir. Una vez restauré y salio la versión 3.5 de WP y desde ahi ya no he tenido problemas. En realidad lo que hacia es cambiar la codificacion y esto rompía las palabras con acéntos o simbolos y aparecía como título del blog este que he comentado. Un saludo.

  3. muy buen articulo, honestamente me da algo de miedo usar wp, pero es una de las mejores soluciones y opciones a un proyecto en puerta; muy buena web y sigo revisando los articulos sobre seguridad, gracias.

  4. Hola, y la comparacion de archivos que hace WordFence es efectiva para saber si los archivos estan bien, saben si este pluggin es efectivo. Muchas Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido