lunes 2 de noviembre de 2009

Remote Code Execution con Eval

El Remote Code Execution ya lo hemos visto antes pero ahora les voy a mostrar como se ve un remote code execution desde el lado del programador y esta ves usaremos un error de eval... no solamente con breve explicación sino con códigos mas reales que permiten a uno darse cuenta de su funcionamiento...


Nuestro Code Vulnerable será el siguiente:


<?php
$code=$_GET['error'];
eval($code);
?>


Buenocomo vemos el code es simple pero nuestro error estará en el eval... lo que hace el eval es evaluar un codigo php entonces nosotros podremos ejecutar nuestro código php...Esto se llamará Remote Code Execution...

http://vulnweb.com/index.php?error=phpinfo();

ahora si nosotros pusieramos phpinfo() como hemos hecho en el anterior ejemplo que pasaría.... nos mostrará la información del PHP que tienen, por que el ";" por que eval ejecuta valores php y en php siempre terminamos con ";"...

Ahora ustedes tambien podrían usar otro tipo de cosillas como la funcion System()...

http://vulnweb.com/index.php?error=system(ls);


con eso obtendriamos un listado de los archivos que hay en el directorio...
para los que usan linux no fue dificil deducirlo... solo hemos usado ls...

Ahora

para los que saben de seguridad cuidado con usar stripslashes() o algun otro que haga que no usemos slashes pues no necesitamos slashes aquí solo usamos palabras y (); pero es algo que no nos va a traer problemas asi que les recomiendo usar otro tipo de filtros...

si usan Str_Replace() Bloqueen el uso del ; y por precausión ")" cosa que ya no podrán ejecutar las funciones PHP...


Saludos
Dr.White