it-swarm.com.de

Vor POST // cgi-bin / php-Angriffen schützen?

Ich werde mit dieser CGI-Injektion angegriffen:

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

Dies dekodiert als

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

PHP-Version ist 5.2.6-1 + Lenny13, ja das ist alt.

Wie kann ich diesen Angriff verhindern?

14
PiTheNumber

A System-Upgrade ist erforderlich aber hier eine schnelle Lösung.

In /etc/Apache2/sites-enabled/000-default Kommentiere ich aus:

   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>

Und habe einen Apache2ctl restart. Jetzt ist /cgi-bin/php Nicht mehr zugänglich. Das sollte es beheben.

Ich frage mich, warum dies sowieso in der Standardeinstellung ist. Sie sollten auch andere Seiten in sites-enabled Überprüfen. Mach einen grep "ExecCGI" /etc/Apache2/sites-enabled.

13
PiTheNumber

Neben dem offensichtlichen Ratschlag alles aktualisieren Ist die einfachste Lösung legen Sie Ihren PHP-Interpreter nicht in Ihr cgi-bin-Verzeichnis. Fügen Sie in der Tat keinen any Interpreter in Ihr cgi-bin-Verzeichnis ein. nicht php, nicht Perl, nicht bash, nicht sed, nicht awk, nicht vi, noch any Programm, das beliebige an ihn übergebene Befehle ausführt.

Wenn Ihre Hosting-Konfiguration erfordert, dass Ihr Interpreter in cgi-bin abgelegt wird, ändern Sie Ihre Hosting-Konfiguration. Es gibt viele vernünftige Alternativen, die nicht auf diese dumme Idee zurückgreifen.

5
tylerl