jueves, 14 de abril de 2011

Bypass Filtros extensiones (RFD, LFI)

Estaba con un amigo juackeando una web nada en particular, pero me di cuenta de algo...
Cuando el archivo elegía los archivos a incluir , era normal..., parecía bien filtrado el archivo.



Despues me puse a pensar como podria estar codeado el sourse, y llegue a la conclusión de que muchos programadores aceptan determinadas extensiones.

El Sourse no Filtrado Correctamente

#łł Visualizar Archivo łł#

@?php
$permitidas[0]='doc';
$permitidas[1]='DOC';
$permitidas[2]='pdf';
$permitidas[3]='PDF';
$permitidas[4]='docx';
$permitidas[5]='DOCX';
$permitidas[6]='rar';
$permitidas[7]='RAR';
$permitidas[8]='zip';
$permitidas[9]='ZIP';
$permitidas[10]='mpg';
$permitidas[11]='xls';
$permitidas[12]='XLS';
$permitidas[13]='pps';
$file=$_GET['archivo'];
$flag=0;
for($i=0;$i<count($permitidas);$i++)
if(substr($file, -3)==$permitidas[$i])
$flag=1; //print $file;
if($flag)
{
$nombre=explode("/",$file);
$nombrear=$nombre[count($nombre)-1];
// fix for IE catching or PHP bug issue
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Content-type: application/octet-stream\n");
header("Content-Disposition: attachment; filename=\"".$nombrear."\"\n");
header("Content-length: " . filesize($file) . "\n");
$fp=fopen("$file", "r");
fpassthru($fp);
}
?@

Con el Código llegamos a la conclusión de que el programador prepara un array para guardar todas las extensiones y usa un blucle "For" y un condicional "IF" para comprobar si el archivo seleccionado es igual al array que serian las extensiones permitidas.

Aqui el Bypass



Bien ,llegando a la conclusión de que incluimos el archivo /etc/passwd no tiene la extensión del array , así que le agregamos un "carácter nulo" en "hexadecimal" con la "extensión permitida" para consultar que seleccione el archivo e indicando que la extensión sea una de las permitidas.



Explotación



Espero que les halla servido este peque bypass ^<^.

No hay comentarios:

Publicar un comentario