Hi Tom,
Dieses muss selbstverständlich prüfen, ob es ein Bild ist, das hochgeladen worden ist, und darf es nur dann aus dem _geschützten_ Temporärverzeichnis in das Bild-Ablageverzeichnis überstellen.
Wenn das Bildablageverzeichnis direkt über HTTP erreichbar ist, und für dieses auch die "normalen" Einstellungen gelten, dass php-Dateien geparst werden, ist Dein System ziemlich offen. Der Angreifer kann dann über dieses eingeschleuste Script auch weitere nachladen und kann auf alles zugreifen, was der Webserver-User mittels PHP erreichen kann.
In dem Upload-Script wird auf die Endung geprüft, danach wird das Bild (es handelt sich ja um Bild-Uploads) mit Copyright-Wasserzeichen versehen und entsprechend skaliert. Das sollte mit keiner PHP-Datei möglich sein.
Im Fehlerfall wird die Datei nicht in das http-externe Verzeichnis kopiert.
In der Haupt-CMS-Datei werden "nur" Datenbankabfragen getätigt, keine File-Funktionen aufgerufen.
Wie funktioniert PHP-Injektion?
Wäre es denkbar, dass der Angreifer bösartigen Code eingeschleust hat, um danach seine Skripte hochzuladen?
Mein Admin sagt, dass PHP (und der Server) nach bestem Wissen und Gewissen dicht ist (eher zu dicht). Hauptangriffspunkt könnte die unverschlüsselte FTP-Übertragung sein, bei der man leicht das Passwort ausspähen könnte.
Ich lade gerade die LOG-Files runter. Danach weiß ich hoffentlich mehr.
Viele Grüße
Fabienne