, 9 mayo 2012 | Imprime

Hace unos días se hizo público una vulnerabilidad sobre PHP-CGI. Esta vulnerabilidad puede ser aprovechada para conseguir código fuente de sitios web vulnerables, lo que significa que el código php de la web vulnerable queda expuesto para que sea analizado por un atacante que explote dicha vulnerabilidad. Hay que tener en cuenta que en muchos casos se encuentran usuarios, passwords, rutas de ficheros, ips privadas de servidores, etc dentro del código php, por lo que en estos casos, la criticidad de esta vulnerabilidad es mayor.

Dicha vulnerabilidad puede ser explotada de un forma muy sencilla, añadiendo los caracteres ?-s al final de la URL, que es lo mismo que ejecutar php-cgi con la opción -s.

Imagen 1 de http://blog.spiderlabs.com/

Otra forma de explotarla y que tiene una consecuencia peor, es poder ejecutar código de forma remota, lo que se haría a través del comando -d, insertándolo de la misma forma en la URL y pasándo por POST los comandos que queremos lanzar. De esta forma, también se han presentado ejemplos de como se podría ejecutar una shell reversa, donde recogeríamos los resultados de los comandos lanzados.


Imagen 2 de http://blog.spiderlabs.com/

Si incluimos la siguiente cadena “?-T+100000” el atacante puede hacer efectivo un ataque DoS.

Podemos comprobar si nuestro sitio web es vulnerable a través de este script de nmap: http-vuln-cve2012-1823.nse o bien a través del módulo de metasploit php_cgi_arg_injection.rb.

Desde snort, también nos han sugerido varias reglas a través de las cuales podemos detectar si están intentando explotar la vulnerabilidad. Los SIDs correspondientes son el 22063, 22064 y 22097.

Una de las opciones para evitar que exploten la vulnerabilidad en nuestros servidores es añadir las siguientes reglas en el fichero .htaccess:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^[^=]*$
RewriteCond %{QUERY_STRING} %2d|\- [NC]
RewriteRule .? – [F,L] 

Otra opción es mediante el uso de modsecurity en apache, a través de esta regla:

SecRule QUERY_STRING "^-[sdcr]"
"phase:1,t:none,t:urlDecodeUni,t:removeWhitespace,block,log,msg:'Potential
PHP-CGI Exploit Attempt'"

Aunque la mejor opción es siempre actualizar a la última versión de php-cgi en la que se han corregido los fallos de seguridad. Hay que tener en cuenta que existen BOTs que intentan explotar la vulnerabilidad de forma masiva, por lo que debemos tener especial cuidado de no ser víctima de ninguna de ellas.

Referencias:

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-1823
  • http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/
  • http://blog.sucuri.net/2012/05/php-cgi-vulnerability-exploited-in-the-wild.html
  • http://blog.spiderlabs.com/2012/05/php-cgi-exploitation-by-example.html
  • http://vrt-blog.snort.org/2012/05/php-cgi-vulnerability-exploits-in-wild.html?m=1
  • (Puedes seguirnos en Twitter: @SecurityArtWork)
    No me gusta esta entradaMe gusta esta entrada (+4 rating, 4 votes)
    Loading ... Loading ...




    Un comentario a “Vulnerabilidad en PHP-CGI”

    (Tenga en cuenta que los comentarios en español y en inglés están mezclados por lo que puede necesitar un traductor online para entender los comentarios de otros usuarios)

    La página de Spiderlabs te descarga automáticamente malware…

    anonimo [web], 10 de mayo de 2012, 12:52 pm

    Deja un comentario

    (Los datos que nos proporciones serán incorporados al fichero LECTORES DEL BLOG cuyo responsable es S2 Grupo, cuya única finalidad es la gestión de las acciones e interacciones que se desarrollen con los usuarios de los blogs de S2 Grupo, entre los que se encuentra Security Art Work. Los datos recogidos no serán en ningún caso cedidos a terceras partes ni tratados para una finalidad distinta a la indicada. Puedes ejercer tus derechos de Acceso, Rectificación, Cancelación y Oposición enviando un correo a admin@securityartwork.es, en el que deberás proporcionarnos la información necesaria para verificar tu identidad. Para cualquier otra consulta o duda relativa a cómo gestionamos tus datos personales, puedes utilizar el mismo correo electrónico.)