1: File inclusion vulnerability
Hier sieht mal gleich: Alles lässt sich includen. 
Beispielsweise mit         ?page=/../../../../../../etc/passwd         lassen sich Informationen des Servers aus der passwd datei auslesen. 
Aber nicht nur das, es lässt sich auch beliebiger PHP-Code ausführen. Dazu muss der PHP-Code einfach als parameter 
übergeben werden:         ?page=<?php phpinfo(); ?>        Da die meisten Server eine Log-File besitzen. Und in diese
auch die URL        keinplan.de/fuckoff.php?page=<?php phpinfo(); ?>        geschrieben wurde, kann der Angreifer durch
'includen' der Log-File diesen php-code ausführen. Die Log-File kann dabei vollgestopft mit anderem Müll sein, spielt
ja keine Rolle 
Hier mal ein möglicher Fix:
	Code:
	<?php
$pages = scandir('pages');
unset($pages[0], $pages[1]);
if (isset($_GET['page']) && in_array($_GET['page'], $pages)){
    include("pages/{$_GET['page']}");
}else{
    echo 'Die Seite konnte nicht gefunden werden!'
?>
 2: Null-Byte vulnerability
Diesmal könnte man denken es sei sicher, da nur TXT-Files included werden. Das täuscht.
Durch anhängen eines Nullbytes lässt sich das leicht umgehen.
Warum? ...  Da wir alle wissen ist der PHP-Compiler in c geschrieben. Dort wird das
Ende eines Strings mit einem Nullbyte markiert. 
Das hat zufolge das der PHP-Code die Endung '.txt' ganz einfach weglässt. FAIL!
Fix: Genau wie bei 1. adden wir eine Whitelist:
	Code:
	<?php
$pages = scandir('pages');
unset($pages[0], $pages[1]);
if (isset($_GET['file']) && in_array("{$_GET['file']).txt", $files)){
    echo "<h3>Inhalt der Datei 'pages/{$_GET['file']}.txt'</h3>";
    include("pages/{$_GET['file']}.txt");
}
?>