Comunidad de diseño web y desarrollo en internet online

Vulnerabilidad en include

Citar            
MensajeEscrito el 22 Mar 2007 09:33 am
Pues por qué

Código :

include($_GET['pag'])
es vulnerable cuando paso por url

Código :

?pag=/etc/passwd
?

Qué es exactamente esta directiva y por qué pasa por el include?

Gracias

Por frenadoll

922 de clabLevel

6 tutoriales

Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 26 Mar 2007 08:44 pm
a pues que si le dices que inluya "X" archivo lo incluye

pasa por el include por que las barras estan permitidas en este, o sea

Código :

<?php
include(../informes/hoy.php);
?>


entonces, cuando tu haces un

Código :

<?php
include(/etc/passwd);
?>


lo toma como una ruta correcta y lo incluye

para evitar este tipo de ataques (Remote File Inclusion) tienes que limpiar tus variables y especificar un directorio por defecto

Código :

<?php
$directorio_base = 'informes';
$archivo = $_GET['pag'];
include($directorio_base."/".$archivo.".php");
?>

y, antes, debes quitar las barras, dos puntos, y barras invertidas, yo tengo una funcion para ello

Código :

<?php
function limpia($var){
   $malo = array("\\","/",";","\'","<",">","'",":");
   $i=0;$o=count($malo);
   while($i<=$o){
      $var = str_replace($malo[$i],"",$var);
      $i++;
   }
   return $var;
} ?>


con esta tambien evitas ataques de XSS (Cross Site Scripting)
y, tambien podrias agregar a l array de $malo el punto, de esa forma ya no podran agregar un archivo externoo, con extencion [...]

quito los dos puntos ":" por que algunas veces no sabes que SO es el servidor(seria gracioso estar atacando un server yno saber que SO es xDDDD) entonces pueden insertar una shell remota
[...]

espero que te sirva de ayuda esto y saludos :)

Por Azielito

79 de clabLevel



 

Frente al PC

firefox
Citar            
MensajeEscrito el 29 Ago 2007 07:36 pm
Me ha sido muy util la funcion limpia.

Saludos.

Por rodrigo.art

56 de clabLevel



 

Argentina

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.