Proteggi dagli attacchi POST // cgi-bin / php?

14

Sono stato attaccato con questa iniezione di 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%6F%6E%65+%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%74%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

Questo decodifica come

//cgi-bin/php?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -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 versione di PHP è 5.2.6-1 + lenny13, sì è vecchia.

Come posso prevenire questo attacco?

    
posta PiTheNumber 06.12.2013 - 11:31
fonte

2 risposte

13

È richiesto un sistema di aggiornamento ma qui una soluzione rapida.

In /etc/apache2/sites-enabled/000-default commento:

   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 ha fatto un apache2ctl restart . Ora /cgi-bin/php non è più accessibile. Questo dovrebbe risolverlo.

Mi chiedo perché questo sia comunque predefinito. Dovresti anche controllare le altre pagine in sites-enabled . Fai un grep "ExecCGI" /etc/apache2/sites-enabled .

    
risposta data 06.12.2013 - 11:44
fonte
5

Oltre all'ovvio consiglio update everything , la soluzione più semplice è non inserire l'interprete php nella directory cgi-bin . In effetti, non mettere alcun interprete nella tua directory cgi-bin; non php, non perl, non bash, non sed, non awk, non vi, né qualsiasi programma che esegue comandi arbitrari passati ad esso.

Se la tua configurazione di hosting richiede che il tuo interprete venga inserito in cgi-bin, cambia la configurazione di hosting. Ci sono molte alternative ragionevoli che non ricorrono a questa sciocca idea.

    
risposta data 16.12.2013 - 10:17
fonte

Leggi altre domande sui tag