title: Local File Disclosure
text: Local File Disclosure (LFD) is een kwetsbaarheid die voorkomt op websites. Door deze kwetsbaarheid kan een aanvaller de inhoud van elk bestand zien dat hij wil, dus ook PHP-bestanden. Het lek kan ontstaan als niet de juiste validatie wordt toegepast, waardoor elk bestand gelezen kan worden in plaats van slechts de bestanden die de bezoeker hoort te lezen. De aanvaller kan een onschuldig bestandje, zoals de hoofdpagina, zien, maar het kan zich ook uitstrekken tot:
   MySQL-connecties
   hashing-methodes
   Privébestanden
  
  Programmeertalen
  
  PHP
  Door het niet valideren in PHP van de externe variabelen, denk hierbij aan $_GET, $_POST en $_COOKIE, kunnen er dus bestanden toegankelijk gemaakt worden die niet toegankelijk horen te zijn. Een voorbeeld van een kwetsbaar script zou zijn:
  
  <?php
  
  	if ( isset ( $_GET["BESTAND"] ) ) {
  	  readfile ( $_GET["BESTAND"] );
  	}
  
  ?>
  
  Hier een aantal voorbeelden wat een aanvaller kan doen, wanneer de website een script zoals hierboven gebruikt:
   /download.php?BESTAND=index.php - nu downloadt de aanvaller de volledige index.php inclusief PHP-code.
   /download.php?BESTAND=configs/MySQL.php - de aanvaller kan ook de MySQL-connectie downloaden.
   /download.php?BESTAND=admin/index.php - de aanvaller kan ook de index.php van het administrator panel downloaden.
  
  Een voorbeeld van een script dat niet kwetsbaar is:
  
  <?php
  
  	if ( $_GET["BESTAND"] == "nieuwsbrief.pdf" ) {
  	  readfile ( "nieuwsbrief.pdf" );
  	}
  
  ?>
  
  Externe links
  Local File Disclosure via XXE injection
  readfile();
  
  Exploit