Een kritiek beveiligingsprobleem dat van invloed is op de Funnel Builder-plug-in voor WordPress wordt in het wild actief misbruikt om kwaadaardige JavaScript-code in de betaalpagina’s van WooCommerce te injecteren met als doel betalingsgegevens te stelen.
Details van de activiteit werden deze week door Sansec gepubliceerd. De kwetsbaarheid heeft momenteel geen officiële CVE-identificatie. Het is van invloed op alle versies van de plug-in vóór 3.15.0.3. Het wordt gebruikt in meer dan 40.000 WooCommerce-winkels.
Door de fout kunnen niet-geverifieerde aanvallers willekeurig JavaScript in elke betaalpagina in de winkel injecteren, aldus het Nederlandse e-commercebeveiligingsbedrijf. FunnelKit, dat Funnel Builder onderhoudt, heeft een patch uitgebracht voor de kwetsbaarheid in versie 3.15.0.3.
“Aanvallers plaatsen valse Google Tag Manager-scripts in de ‘Externe Scripts’-instelling van de plug-in”, aldus het rapport. “De geïnjecteerde code ziet eruit als gewone analyses naast de echte tags van de winkel, maar laadt een betalingsskimmer die creditcardnummers, CVV’s en factuuradressen steelt bij het afrekenen.”
Volgens Sansec bevat Funnel Builder een openbaar toegankelijk betaaleindpunt waarmee een inkomend verzoek het type interne methode kan kiezen dat moet worden uitgevoerd. Oudere versies zijn echter zo ontworpen dat ze nooit de rechten van de beller controleerden of beperkten welke methoden mochten worden aangeroepen.
Een slechte actor zou deze maas in de wet kunnen misbruiken door een niet-geverifieerd verzoek uit te voeren dat een niet-gespecificeerde interne methode kan bereiken die door de aanvaller gecontroleerde gegevens rechtstreeks naar de algemene instellingen van de plug-in schrijft. Het toegevoegde codefragment wordt vervolgens op elke betaalpagina van Funnel Builder geïnjecteerd.
Als gevolg hiervan kan een aanvaller een kwaadwillende plant
In ten minste één geval zei Sansec dat het een payload had waargenomen die zich voordeed als een Google Tag Manager (GTM)-lader om JavaScript te lanceren dat op een extern domein werd gehost. Vervolgens wordt een WebSocket-verbinding geopend met de command-and-control (C2)-server van de aanvaller (“wss://protect-wss(.)com/ws”) om een skimmer op te halen die is afgestemd op de winkelpui van het slachtoffer.
Het uiteindelijke doel van de aanval is het overhevelen van creditcardnummers, CVV’s, factuuradressen en andere persoonlijke informatie die door sitebezoekers bij het afrekenen kan worden ingevoerd. Site-eigenaren worden geadviseerd om de Funnel Builder-plug-in bij te werken naar de nieuwste versie en Instellingen > Afrekenen > Externe scripts te controleren op alles dat onbekend is en deze te verwijderen.
“Het aankleden van skimmers als Google Analytics- of Tag Manager-code is een terugkerend Magecart-patroon, omdat recensenten de neiging hebben om regelrecht voorbij te gaan aan alles dat op een bekende trackingtag lijkt”, aldus Sansec.
De onthulling komt weken nadat Sucuri een campagne heeft uitgewerkt waarin Joomla-websites worden achterdeurd met zwaar versluierde PHP-code om contact op te nemen met door de aanvaller gecontroleerde C2-servers, instructies te ontvangen en te verwerken die door de operators zijn verzonden, en spam-achtige inhoud aan bezoekers en zoekmachines aan te bieden zonder medeweten van de site-eigenaar. Het uiteindelijke doel is om de reputatie van de site op het gebied van het injecteren van spam te benutten.
“Het script fungeert als een externe lader”, zegt beveiligingsonderzoeker Puja Srivastava. “Het maakt contact met een externe server, verzendt informatie over de geïnfecteerde website en wacht op instructies. De reactie van de externe server bepaalt welke inhoud de geïnfecteerde site moet weergeven.”
“Deze aanpak stelt aanvallers in staat het gedrag van de besmette website op elk moment te veranderen zonder de lokale bestanden opnieuw aan te passen. De aanvaller kan spamproductlinks injecteren, bezoekers omleiden of kwaadaardige pagina’s dynamisch weergeven.”