elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda con Remote File Disclosure
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con Remote File Disclosure  (Leído 1,550 veces)
pedrox@

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Duda con Remote File Disclosure
« en: 13 Agosto 2008, 14:40 pm »

Hola buenas.

¿De que manera podría parchear un Remote File Disclosure?
Ejemplo código:

Código
  1. <?php
  2.  
  3. $filename = $_GET['filename'];
  4. $fp = fopen($filename, 'r');
  5. $doc = fread($fp, filesize($file));
  6. echo $doc;
  7.  
  8. ?>

Con este tipo de fallo el atacante podría leer cualquier archivo de texto plano:
http://localhost/archivovulnerable.php?filename=/etc/group

¿Qué formas habría de solucionar este fallo?

Salu2


En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Duda con Remote File Disclosure
« Respuesta #1 en: 13 Agosto 2008, 16:26 pm »

Hola buenas.

¿De que manera podría parchear un Remote File Disclosure?
Ejemplo código:

Código
  1. <?php
  2.  
  3. $filename = $_GET['filename'];
  4. $fp = fopen($filename, 'r');
  5. $doc = fread($fp, filesize($file));
  6. echo $doc;
  7.  
  8. ?>

Con este tipo de fallo el atacante podría leer cualquier archivo de texto plano:
http://localhost/archivovulnerable.php?filename=/etc/group

¿Qué formas habría de solucionar este fallo?

Salu2

Pues la solucion depende de lo que quieres hacer con tu script, por ejemplo:

Digamos que ese script lo quieres para leer un datos o varios datos dentro del mismo directorio donde trabaja el script con la finalidad de obtener informacion que has ido resguardando, entonces solo utilizas un strchr(); para verificar la existencia de un caracter, de modo que evitas la existencia de carateres como '/'. Por otro lado si vas a leer archivos (sin saber el nombre) de un directorio en especifico, pues vuleves a utilizar strchr() para verificar que exista el nombre del directorio dentro del valor $_GET[].

Todo seria en cuestion de: Que quieres que haga ese script ?....

bye bye

Código
  1. <?php
  2. function seguridad_archivos( $archivo )
  3.     {
  4.     //aqui pondremos todas las comparaciones que debe pasar la variable
  5.     //strchr() es igual que stristr(), solo que stristr() ignora si son mayusculas o minusculas
  6.  
  7.     //en el caso que leamos del directorio actual, sin movernos, asi que no debera existir un /
  8.     if( stristr( $archivo, '/' ) )
  9.          return 0; //no pasa
  10.  
  11.     //esta seria en caso que deseamos leer de un directorio unicamente
  12.     //oviamente no utilizariamos el condicional anterior xD
  13.     else if( !stristr( $archivo, "carpeta/") )
  14.          return 0; //no paso
  15.  
  16.     return 1; //si paso
  17.     }
  18.  
  19. if( seguridad_archivos($_GET['filename']) )
  20.     {
  21.     $filename = $_GET['filename'];
  22.     $fp = fopen($filename, 'r');
  23.     $doc = fread($fp, filesize($file));
  24.     echo $doc;
  25.     }
  26. else
  27.     echo "Anti-Hack Activado jejejej :P";
  28.  
  29. ?>


« Última modificación: 13 Agosto 2008, 16:34 pm por Diabliyo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
sobre Remote File Disclosure
Nivel Web
sancakoky 2 3,251 Último mensaje 23 Noviembre 2010, 12:31 pm
por sancakoky
File Disclosure en SimpleMachines Forum <= 2.0.3
Nivel Web
WHK 0 1,957 Último mensaje 7 Enero 2013, 16:17 pm
por WHK
[Duda] Alternativas a End of File
Programación Visual Basic
MrSatan 1 1,238 Último mensaje 27 Junio 2013, 04:22 am
por Danyfirex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines