martes 16 de junio de 2009

Pen-Test: Remote Code Execution

El Remote Code Execution es una vulnerabilidad de muy alto peligro ya que con este se ejecutan comandos del servidor de una manera remota...
este bug es por un error del mal uso de la funcion System() en PHP

Código vulnerable.php:

$varerror = system('cat '.$_GET['pageid'], $valoretorno);

echo $varerror;

?>


en un Servidor linux el bug se podría explotar facilmente de la siguente manera...

usando el Method GET que podriamos usar con el live http headers

GET /vulnerable.php?pageid=loquesea;ls HTTP/1.1

Host: Localhost

Como resultado se ejecutaria el comando ls lo que quiere decir que mostraría los directorios quitandole discreción a su host y servidor sin mencionar que no solo se puede usar ls sino otros comandos linux, casi se me olvidaba este code tambien es vulnerable a Remote File Disclosure.

¿Corregirlo?

No hay una manera específica para corregir esto solo les puedo dar recomendaciones para filtrar caracteres en las url y no hace falta decir que es preferible no usar comandos de su servidor en webs publicas y en especial sin filtrado.




Saludos
Dr.White