6/5/12

Grave vulnerabilidad en PHP-CGI, ejecuta código remoto

Se ha publicado una grave vulnerabilidad en el código del lenguaje PHP que permite la ejecución remota de código en servidores web con PHP, que se ejecuten como interfaz de entrada común o CGI.

Eindbazen, un equipo de competiciones CTF, ha descubierto una vulnerabilidad en PHP-CGI (CVE-2012-1823) que permite pasar parámetros al intérprete de PHP, como -s o -r, a través de la URL.

Para verificar si la vulnerabilidad nos afecta, sólo es necesario añadir ?-s a la URL y ver si descargamos el código fuente, ejemplo:

dominio.com/test.php?-s

El resultado de la inyección de estos parámetros en la URL es que se puede mostrar el contenido de archivos de código fuente (que puede incluir información confidencial como, las contraseñas de las Bases de Datos) o ejecutar código PHP arbitrario. 

Ya existen módulos para Metasploit (use exploit/multi/http/php_cgi_arg_injection):

Video demostrativo:


Por suerte, ya podemos descargar las versiones parcheadas desde el sitio web de PHP, concretamente la PHP 5.3.12 o PHP 5.4.2. Si no queremos o podemos actualizar tan sencillamente, podemos aplicar un workaround mediante el cual configuramos unos rewrite, ya sea en el virtualhost o a nivel de .htaccess para bloquear este tipo de peticiones. Para Apache con mod_rewrite:

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]

0 comentarios:

Publicar un comentario