Remote File Inclusion
Der Begriff Remote File Inclusion beschreibt eine Sicherheitslücke in Skript-basierten Webanwendungen, die es einem Angreifer ermöglicht, unkontrolliert Programmcode in den Webserver einzuschleusen und dort auszuführen.[1]
Gebräuchlich ist der Begriff Remote File Inclusion im Zusammenhang mit der Skriptsprache PHP, trifft jedoch auch auf andere Skriptsprachen zu, die ähnliche Fähigkeiten wie PHP bieten.
PHP betreffende Erläuterung
Die PHP-Anweisungen include
und require
(sowie include_once
und require_once
) dienen zum Einbinden von zusätzlichen PHP-Skriptdateien in das laufende Skript. Die Sicherheitslücke entsteht, wenn Benutzereingaben ungenügend geprüft als Parameter für diese Anweisung verwendet werden. Das kann dazu führen, dass ungewollte PHP-Skriptdateien ausgeführt werden. Im schlimmsten Fall kann ein Angreifer damit sogar Programmcode, der von einem fremden Webserver ausgeliefert wird, zur Ausführung bringen.
Da die Sicherheitslücke durch Schwachstellen in der Programmierung entsteht, kann nur eine Änderung des Skriptes Abhilfe schaffen. PHP selbst bietet zudem die Konfigurationsoption allow_url_fopen
[2] an, mit der das Öffnen von URLs verboten werden kann, was aber auch gleichzeitig andere Funktionen einschränkt. In PHP 5.2 ist deshalb die Konfigurationsoption allow_url_include
[3] hinzugekommen, mit der separat nur das Einbinden und Ausführen entfernter Ressourcen mittels der genannten PHP-Anweisungen verboten werden kann.
Siehe auch: Directory Traversal