¿Proteger contra los ataques POST // cgi-bin / php?

14

Estoy siendo atacado con esta inyección de cgi:

  

POST   //% 63% 67% 69% 2D% 62% 69% 6E /% 70% 68% 70?% 2D% 64 +% 61% 6C% 6C% 6F% 77% 5F% 75% 72% 6C% 5F% 69% 6E% 63% 6C% 75% 64% 65% 3D% 6F% 6E +% 2D% 64 +% 73% 61% 66% 65% 5F% 6D% 6F% 64% 65% 3D% 6F% 66% 66 +% 2D% 64 +% 73% 75% 68% 6F% 73% 69% 6E% 2E% 73% 69% 6D% 75% 6C% 61% 74% 69% 6F% 6E% 3D% 6F% 6E +% 2D % 64 +% 64% 69% 73% 61% 62% 6C% 65% 5F% 66% 75% 6E% 63% 74% 69% 6F% 6E% 73% 3D% 22% 22 +% 2D% 64 +% 6F% 70% 65% 6E% 5F% 62% 61% 73% 65% 64% 69% 72% 3D% 6E% 6%% 6%% 2D% 64%% 61% 75% 74% 6F% 5F% 70% 72% 65% 70% 65% 6E% 64% 5F% 66% 69% 6C% 65% 3D% 70% 68% 70% 3A% 2F% 2F% 69% 6E% 70% 75% 74 +% 2D % 64 +% 63% 67% 69% 2E% 66% 6F% 72% 63% 65% 5F% 72% 65% 64% 69% 72% 65% 63% 3D% 30 +% 2D% 64 +% 63% 67% 69% 2E% 72% 65% 64% 69% 72% 65% 63% 74% 5F% 73% 74% 61% 74% 75% 73% 5F% 65% 6E% 76% 3D% 30 + % 2D% 64 +% 61% 75% 74% 6F% 5F% 70% 72% 65% 70% 65% 6E% 64% 5F% 66% 69% 6C% 65% 3D% 70% 68% 70% 3A% 2F% 2F% 69% 6E% 70% 75% 74 +% 2D% 6E   HTTP / 1.1

Esto se decodifica como

  

// cgi-bin / php? -d allow_url_include = en -d safe_mode = off -d   suhosin.simulation = en -d disable_functions="" -d open_basedir = none -d   auto_prepend_file = php: // input -d cgi.force_redirect = 0 -d   cgi.redirect_status_env = 0 -d auto_prepend_file = php: // input -n

La versión de PHP es 5.2.6-1 + lenny13, sí, eso es viejo.

¿Cómo puedo prevenir este ataque?

    
pregunta PiTheNumber 06.12.2013 - 11:31
fuente

2 respuestas

13

Se requiere una actualización del sistema pero aquí hay una solución rápida.

En /etc/apache2/sites-enabled/000-default comento:

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
           AllowOverride None
           Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
           Order allow,deny
           Allow from all
   </Directory>

E hizo un apache2ctl restart . Ahora /cgi-bin/php ya no es accesible. Eso debería arreglarlo.

Me pregunto por qué esto está por defecto de todos modos. También deberías revisar otras páginas en sites-enabled . Haz un grep "ExecCGI" /etc/apache2/sites-enabled .

    
respondido por el PiTheNumber 06.12.2013 - 11:44
fuente
5

Además del consejo obvio de actualizar todo , la solución más simple es no coloque su intérprete php en su directorio cgi-bin . De hecho, no coloque ningún intérprete en su directorio cgi-bin; ni php, ni perl, ni bash, ni sed, ni awk, ni vi, ni ningún programa que ejecute comandos arbitrarios que se le hayan pasado.

Si la configuración de su alojamiento requiere que su intérprete se coloque en cgi-bin, cambie la configuración de su alojamiento. Hay muchas alternativas razonables que no recurren a esta idea tonta.

    
respondido por el tylerl 16.12.2013 - 10:17
fuente

Lea otras preguntas en las etiquetas