Estas dos vulnerabilidades son casi iguales, la diferencia está en el codigo vulnerable. Remote Code Execution se debe a usar funciones PHP tales como eval(); sin filtrar y eso permitiria ejecutar codigo php. Remote Command Execution se debe a mal uso de las funciones php que ejecutan comandos como system(); exec(); ,etc.... Remote Code Execution: Es una vulnerabilidad que nos permite ejecutar codigo PHP en el servidor. se debe a un fallo en la programacion de la pagina al usar funciones como eval() , la funcion eval() de PHP, evalua una cadena como codigo PHP, asi que para que el ataque funcione debemos usar el ; al final. Codigo vulnerable a Remote Code Execution: <?php $var=$_GET['vuln']; eval($var); ?> Modo de explotarlo: http://webvuln.com/x7uk.php?vuln=phpinfo(); o tambien se podria usar las funciones de php que ejecutan comandos, tales como: exec() passthru() shell_exec() system() http://webvuln.com/x7uk.php?vuln=system(ls); y tendremos un listado de los archivos de ese directorio. Remote Command Execution: Se debe a un mal uso de las funciones php que ejecutan comandos en el servidor. Algunas de ellas: exec() passthru() shell_exec() system() Codigo vulnerable a remote command execution: <?php $cmd=$_GET['cmd']; system($cmd); ?> Modo de explotarlo: http://web.com/x7uk.php?cmd=whoami Se ejecuta el comando pasado por GET a la variable CMD, es simple. Si se usa el comando exec() no se puede ver la salida del comando, aunque este se ejecuta. Si queremos ver la salida tiene que ser asi: <?php $cmd=$_GET['cmd']; echo exec($cmd); ?> Otro codigo vulnerable a RCE: system("ping ".$_GET['host']); Modo de explotarlo: Pipes: Bueno, Pipes es un mecanismo de comunicacion especifico para todos los sistemas unix, es decir, permite a dos procesos comunicarse entre si. Ej: En una consola, entre a alguna carpeta y corra el comando: ping | dir. vera que se ejecutan ambos comandos, o dir | echo echo imprimira la salida de dir La forma de explotar el codigo vulnerable visto seria la siguiente: http://webvuln.com/x7uk.php?host=| ls seria ping | ls veriamos los archivos de ese directorio. |
Bugs y Exploits > Nivel Web >