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