File Inclusion

File Inclusion Angriffe auf WordPress

Einleitung

File Inclusion Angriffe zählen zu den gefährlichsten Sicherheitsbedrohungen im WordPress-Umfeld.
Sie ermöglichen es Angreifern, schädliche Dateien in einen laufenden Prozess einzubinden und so Schadcode auf dem Server auszuführen.
Im Fokus stehen dabei vor allem unsichere PHP-Skripte, die es Hackern erlauben, lokale oder auch externe Dateien einzuschleusen.
Gerade WordPress-Installationen, die viele Plugins oder Themes nutzen, können davon betroffen sein,
wenn Entwickler oder Administratoren nicht ausreichend auf den Umgang mit Dateipfaden achten.
In diesem Artikel wollen wir klären, was genau hinter File Inclusion Angriffen steckt und
welche Schutzmaßnahmen WordPress-Betreiber treffen sollten, um dieses Risiko zu minimieren.

Was sind File Inclusion Angriffe?

File Inclusion AngriffeBei File Inclusion Angriffen machen sich Angreifer die dynamische Einbindung von Dateien in PHP- oder andere Scriptsprachen zunutze.
Durch unsichere Programmierung kann es möglich sein, dass externe Eingaben ungefiltert als Dateiname weitergegeben werden.
Wenn der Pfad nicht korrekt validiert oder gefiltert wird, können bösartige Dateien aufgerufen werden,
die Schadroutinen enthalten.
Man unterscheidet grob zwischen „Local File Inclusion“ (LFI) und „Remote File Inclusion“ (RFI).
Der grundlegende Unterschied liegt darin, ob eine Datei vom lokalen Server oder von einem fremden Server eingebunden wird.

Angriffe dieser Art gehören zu den „Injection“-Attacken, da unvertrauenswürdige Daten in einen eigentlich sicheren Kontext eingeschleust werden.
Während SQL-Injections auf die Manipulation von Datenbanken abzielen,
richten sich File Inclusions gegen das Dateisystem einer Website.
Da WordPress typischerweise mit PHP betrieben wird und Plugins häufig eigene Dateizugriffe implementieren,
besteht hier eine besondere Anfälligkeit, wenn Entwickler nicht sicher programmieren.
Sind einmal Dateien mit Schadcode in das System eingeschleust, können Angreifer oft beliebigen Code ausführen
oder vertrauliche Informationen (z. B. Konfigurationsdateien) auslesen.

Local File Inclusion (LFI)

Bei Local File Inclusion wird eine Datei auf dem eigenen Server eingebunden.
Dies geschieht häufig über Funktionen wie include, require, include_once
oder require_once in PHP.
Ist der Dateipfad nicht korrekt abgesichert, kann ein Angreifer beispielsweise über ein GET-Parameter
auf kritische Dateien im Server zugreifen.
Solche Dateien enthalten oft sensible Informationen wie Zugangsdaten oder Serverkonfigurationen (z. B. wp-config.php).
Zudem kann der Angreifer in einigen Fällen die Ausführung bestimmter Dateien erzwingen,
die für den eigentlichen Betrieb gar nicht gedacht waren.

Ein klassisches Szenario ist etwa, dass ein Script so programmiert wurde:

include($_GET['page']);

Wenn hier keine Filterung stattfindet, kann ein Angreifer den Parameter page manipulieren,
um etwa /etc/passwd (unter Linux) oder andere Dateien auszulesen.
Da WordPress bei der Konfiguration verschiedene Dateien auf dem Server hinterlegt,
lässt sich auf diesem Weg nicht nur Konfigurationsinformation stehlen,
sondern auch Schadcode in Form einer bereits vorhandenen Datei ausführen, falls diese direkt aufrufbar gemacht wird.

Remote File Inclusion (RFI)

Bei Remote File Inclusion wird eine Datei von einem fremden Server nachgeladen.
Das bedeutet, dass ein Angreifer eine URL angibt, die auf eine schädliche Datei im Internet verweist.
PHP muss dazu so konfiguriert sein, dass allow_url_fopen oder allow_url_include aktiviert ist.
In vielen Standard-Hosting-Umgebungen ist dies mittlerweile aus Sicherheitsgründen abgeschaltet,
aber es gibt nach wie vor Fälle, in denen diese Einstellungen noch aktiv sind.
Zudem ist das Risiko besonders hoch, wenn Hosting-Provider oder Server-Administratoren nicht ausreichend auf Sicherheitsbestimmungen achten.

RFI ermöglicht es Angreifern, nahezu beliebigen Code einzuschleusen, da sie die Kontrolle über den Inhalt der externen Datei haben.
Häufig wird ein kleiner Payload eingebunden, der dem Hacker weitere Zugriffe auf das System sichert –
etwa durch das Hochladen von Backdoor-Skripten, die sich dann dauerhaft einnisten und die Kompromittierung der gesamten Website erleichtern.
Für WordPress kann dies schnell gravierende Folgen haben,
da mit einem solchen Code Injection Angriff die komplette Kontrolle über Themes, Plugins und Datenbanken erlangt werden kann.

Relevanz für WordPress

WordPress ist durch seine offene Architektur und die große Anzahl an Drittanbieter-Plugins besonders anfällig für File Inclusion Angriffe,
wenn Entwickler unsichere Skripte verwenden.
Ein einziger fehlerhafter include()-Aufruf reicht aus, um ein Einfallstor für Angreifer zu bieten.
Zwar legt der WordPress-Core selbst zunehmend Wert auf sichere Programmierpraktiken,
doch viele Plugins oder Themes sind nicht immer auf dem aktuellsten Stand oder werden ohne formale Code-Reviews veröffentlicht.
Dieses Ökosystem ist daher ein beliebtes Ziel für Hacker, die nach neuen Schwachstellen suchen.
Auch fehlende Updates oder veraltete PHP-Versionen können zum Problem werden.

Da WordPress zudem nicht nur private Blogs, sondern auch Unternehmenswebsites, Onlineshops oder behördliche Portale antreibt,
lohnt sich ein erfolgreicher Angriff für Kriminelle doppelt.
Inhalte lassen sich manipulieren, Benutzerdaten abgreifen oder Schadsoftware verteilen.
Der Reputationsverlust für die Betreiber kann erheblich sein.
Deshalb ist es für jede WordPress-Installation entscheidend, den Umgang mit Dateizugriffen genau im Blick zu haben
und entsprechende Sicherheitsmaßnahmen zu ergreifen.

Risiko und Auswirkungen

Die Auswirkungen eines erfolgreichen File Inclusion Angriffs können vielfältig sein:

Datendiebstahl:

Angreifer können Konfigurationsdateien wie wp-config.php auslesen, was Datenbank-Credentials und andere sensitive Informationen offenlegt.

Codeausführung:
Wer Zugriff auf das Dateisystem hat, kann schädliche PHP-Skripte ausführen,
um z. B. weitere Malware zu installieren oder Server-Aktivitäten zu manipulieren.

Defacements:
Hacker können die Startseite oder andere Bereiche einer Website durch unerwünschte Inhalte ersetzen,
etwa politische Botschaften oder Werbelinks für zweifelhafte Produkte.

Backdoors:
Sind Angreifer einmal im System, legen sie oft Hintertüren an, um auch nach einem Update oder einer Bereinigung weiterhin Zugriff zu haben.

Image-Schaden:
Eine kompromittierte Website verliert schnell das Vertrauen ihrer Nutzer.
Kunden, Leser oder Geschäftspartner reagieren oft sensibel auf Sicherheitslücken und gehackte Seiten.

Solche Risiken sind für viele WordPress-Betreiber existenzbedrohend, insbesondere wenn das Online-Angebot eine zentrale Geschäftsgrundlage bildet.
Daher ist eine frühzeitige Prävention unerlässlich, um hohe Folgekosten und Imageschäden zu vermeiden.

Typische Einfallstore

File Inclusion Angriffe geschehen oft über:

Unsichere Plugin-Funktionen:

Plugins, die Dateiuploads erlauben oder dynamische Pfade einbinden, sind besonders anfällig, wenn sie keine Sicherheitschecks durchführen.

Selbst programmierte Themes:

Laienhafte oder veraltete Codebeispiele im Theme können Dateipfade unsicher verarbeiten und so Angriffsmöglichkeiten eröffnen.

PHP-Einstellungen:

Wenn allow_url_fopen oder allow_url_include aktiviert sind,
wird die Durchführung von Remote File Inclusions begünstigt.

Fehlende Validierung von GET/POST-Parametern:

Angreifer können einfach mit manipulierten Parametern experimentieren,
wenn keine Filterung oder Überprüfung stattfindet.

Alte WordPress-Versionen:

Auch im Core gab es in der Vergangenheit Sicherheitslücken, die File Inclusion begünstigt haben.
Aktuelle Versionen sind in der Regel sicherer.

Präventive Maßnahmen

Um File Inclusion Angriffe abzuwehren, genügt es oft nicht, nur ein einzelnes Plugin zu installieren.
Es braucht eine ganze Reihe von Vorkehrungen, die gemeinsam für mehr Sicherheit sorgen.
Zunächst sollte man sicherstellen, dass die eingesetzten Themes und Plugins aus vertrauenswürdigen Quellen stammen
und regelmäßig aktualisiert werden.
Wer selbst programmierte Erweiterungen nutzt, sollte sich mit den gängigen Sicherheitsempfehlungen für PHP auseinandersetzen
und kritische Funktionen wie include() oder require() nur mit sicheren, validierten Pfaden aufrufen.

Ein weiterer Schritt ist die Absicherung der Servereinstellungen:
allow_url_include sollte grundsätzlich deaktiviert sein,
ebenso wie alle anderen Funktionen, die nicht zwingend benötigt werden.
Regelmäßige Sicherheits-Scans und Log-Analysen helfen dabei, potenzielle Angriffe frühzeitig zu erkennen.
Außerdem empfiehlt es sich, eine Web Application Firewall (WAF) vorzuschalten,
um schädliche Anfragen automatisch zu blockieren.

Best Practices

Nachfolgend einige Best Practices, die sich in der Praxis bewährt haben, um WordPress vor File Inclusion Angriffen zu schützen:

Absolute Pfade nutzen:

Verwenden Sie in allen PHP-Datei-Operationen nur absolute Pfade anstelle von relativen.
Dadurch wird die Gefahr reduziert, dass Angreifer den Pfad manipulieren können.

Input-Validierung:

Prüfen Sie alle Eingaben (z. B. GET- oder POST-Parameter) mit Whitelists oder Regex-Prüfungen.
Lassen Sie nur das zu, was eindeutig erwartet wird, anstatt versuchen zu müssen, schädliche Inhalte zu erkennen.

Ausgefeilte Zugriffsrechte:

Auch auf Dateiebene sollte nicht jeder Nutzer Schreib- und Leserechte auf alle Ordner haben.
Beschränken Sie Schreibrechte nur auf jene Verzeichnisse, in denen es absolut notwendig ist.

Updates und Patches:

Halten Sie den WordPress-Core, Themes und Plugins stets auf dem aktuellsten Stand,
um bekannte Sicherheitslücken zu schließen.

Logs überwachen:
Sichten Sie regelmäßig die Server-Logs, um auffällige Zugriffe oder Fehlermeldungen zu entdecken.
File Inclusion Angriffe hinterlassen oft Spuren im Zugriffsmuster.

Web Application Firewall (WAF)

Web Application Firewall wafEine Web Application Firewall kann File Inclusion Angriffe effektiv blockieren.
WAFs erkennen typische Angriffsmuster wie das Einfügen ungewöhnlicher Pfade oder externer URLs in Request-Parametern.
Cloudbasierte Lösungen wie Cloudflare filtern den Traffic bereits,
bevor er den eigenen Server erreicht.
Aber auch lokal installierte WordPress-Sicherheitsplugins (wie WP Solid)
können verdächtige Aufrufe blockieren, indem sie eine eigene Firewall-Logik implementieren.

Gerade bei stark frequentierten Websites ist eine zusätzliche Schicht zwischen dem Internet und der eigentlichen WordPress-Installation
eine gute Vorsichtsmaßnahme.
Zudem bieten viele WAFs umfangreiche Analysetools,
mit denen sich die Art und Herkunft der Attacken genauer untersuchen lässt.
Dies hilft dabei, die Sicherheitsstrategie langfristig zu verbessern.

Deaktivierung nicht benötigter Funktionen

Ein weiterer zentraler Aspekt bei der Abwehr von File Inclusion Angriffen ist die richtige Serverkonfiguration.
PHP bietet zahlreiche Optionen, die für bestimmte Anwendungen zwar praktisch sein können,
jedoch erhebliche Sicherheitsrisiken bergen.
Dazu gehört vor allem allow_url_include,
das RFI-Attacken überhaupt erst ermöglicht.
Ist diese Option ausgeschaltet, kann PHP keine Remote-Dateien einbinden –
eine erhebliche Risikominimierung.
Zusätzlich ist allow_url_fopen oft ein Einfallstor,
das man nur aktivieren sollte, wenn es wirklich benötigt wird.

Auch andere Funktionen, die Sie nicht brauchen (etwa exec, shell_exec, system)
können je nach Anforderung abgeschaltet werden.
So verringern Sie insgesamt die Angriffsmöglichkeiten für Hacker.
Der Grundsatz „Weniger ist mehr“ gilt hier besonders:
Je weniger Funktionen auf dem Server zur Verfügung stehen, desto kleiner ist die potenzielle Angriffsfläche.

Glossar
File Inclusion
Das Einbinden von (lokalen oder entfernten) Dateien in ein laufendes Skript.
Unsichere Implementierungen können von Angreifern ausgenutzt werden.
Local File Inclusion (LFI)
Ein Angriffsvektor, bei dem eine lokale Datei auf dem eigenen Server eingebunden und oft Schadcode ausgeführt wird.
Remote File Inclusion (RFI)
Eine Angriffsmethode, bei der Dateien von fremden Servern in die eigene Anwendung eingebunden werden.
Möglich durch unsichere PHP-Einstellungen.
allow_url_include
Eine PHP-Einstellung, die das Einbinden von Dateien über URL-Aufrufe erlaubt – und RFI-Angriffe ermöglicht.
allow_url_fopen
Eine PHP-Einstellung, die das Öffnen entfernter Dateien über URL-Aufrufe gestattet.
Kann für Sicherheitsrisiken sorgen, wenn nicht korrekt abgesichert.
Absolute Pfade
Komplette Dateipfade, die vom Wurzelverzeichnis des Servers aus angegeben werden (z. B. /var/www/html/wp-config.php).
Injection
Das unerlaubte Einspeisen von fremden Daten in ein System, wodurch Befehle oder Anweisungen manipuliert werden können.
Web Application Firewall (WAF)
Eine Firewall, die auf Anwendungsebene arbeitet und verdächtige HTTP-Anfragen erkennt und blockiert.
Backdoor
Ein versteckter Zugang zu einem System, der Angreifern auch nach einem Patch oder Sicherheitsupdate fortwährenden Zugriff gewährt.
Linksammlung

 

 

Ihr Wordpress-System  wurde angegriffen und Sie benötigen Hilfe?
Dann setzen Sie sich mit uns in Verbindung: