Sven Rautenberg: Wie kommt schadhafter JavaScript-Code in die Startseite?

Beitrag lesen

Moin!

Ich stelle die Frage unter PHP, weil ich ein unsicheres Kontaktformular in Verdacht habe

Das Formular ist zwar Mist, aber ich kann nicht erkennen, warum es irgendeinen Zugriff auf andere Dateien haben sollte.

Frage: Wie gelang der JavaScript-Code in die Startseite bzw. index.html-Seiten?

Diese Frage lässt sich nicht durch diesen Code erklären:

<?php if (isset ($Email) && isset ($VName) && isset($Nachricht)){

$MailTo="kunde@example.com";
                $nowDay=date("d.m.Y");
                $nowClock=date("H:i:s");
                $FormContent="
                Kontaktformular Kunde\n
                Diese Nachricht wurde am  $nowDay um $nowClock abgeschickt.\n\n
                ---------------------------------------------------------\n
                Vorname: $VName\n
                Name: $NName\n
                Email: $Email\n
                Telefon: $Tel\n\n
                ---------------------------------------------------------\n
                Nachricht: $Nachricht\n
                ---------------------------------------------------------\n
                ";
                mail($MailTo,"Nachricht von $VName $NName", $FormContent, "From: $Email");
                }
            ?>

  

> Auch wenn ich von PHP soviel Ahnung habe wie vom Pizzabacken sehe ich hier, dass wir eine wunderbare Spamschleuder haben, denn nichts, aber rein gar nichts wird geprüft.  
  
Durch Header-Injection kann man hier wunderbar angreifen. Das würde nur verhindert, wenn beispielsweise die PHP-Extension Suhosin installiert wäre.  
  
Das einzige, was damit erreicht würde, wäre dann aber Spam - der zudem auch immer an der fest definierten Zieladresse auftauchen würde.  
  

> Wie kommen die Hacker auf die \_Startseite\_?  
  
Über andere Wege wahrscheinlich.  
  
Wenn der Server schlecht konfiguriert ist, eventuell auch von Skripten anderer Webpräsenzen. Ansonsten eher über ein unvorsichtig eingebautes include() oder require() mit Variablen drin.  
  
 - Sven Rautenberg