Allgemein Sicherheit Testberichte

[WARNUNG] Sicherheitslücke im TinyMCE ImageManager

8301_hand_on_keyboardHallo,

heute mal mit einer Warnung! Im offiziellen TinyMCE ImageManager gibt es eine Sicherheitslücke.
Durch diese Lücke können sich Hacker problemlos auf dem ganzen Server/Datenbank bewegen. Der Hacker hat alle Benutzerrechte die der Server bereitstellt! (Nähere erläuterung wie das funktioniert in meinem Video-Tutorial wie man sich vor CodeInjection schützen kann.)

L0rdShrek (Arbeitskollege) hat mich gebeten mal den ImageManager genauer unter die Lupe zu nehmen. Im Zuge dessen ist mir aufgefallen dass die examples.html diese Sicherheitslücke aufweist.
Durch ein Klick auf ein Beispielcode öffnet sich der ImageManager, dadurch kann man auch PHP-Dateien hochladen. Dies funktioniert allerdings nur wenn die datei die Dateiendung .php.png, .php.jpg oder .php.gif hat.

Durch die „gefälschte“ Dateiendung geht der Manager davon aus, dass dies ein Bild sei und lädt es ohne Probleme hoch.

Lösung
Die erste anpassung ist, die examples.html vom Server zu löschen, dadurch gibt es schonmal keinen Link mehr.
Die zweite anpassung ist, die Loginfunktion zu aktivieren(sollte in der config.php sein) und das Passwort sowie den Benutzernamen in der Logindatei zu ändern.

Optimalerweise sollte man dies nicht im Quelltext stehen haben, sondern in einer Datenbank verschlüsselt gespeichert.
Außerdem sollte man die Loginfunktion soweit anpassen das keine Sessions mehr benutzt werden, da diese einfach zu stehlen sind.

 

 UPDATE 07.05.2013
Wie ich gestern noch erfahren habe, kann man die Ausnutzungsgefahr minimieren in dem man seinen Server, um genauer zu sein httpd, richtig konfiguriert.
Dazu gibt man in der httpd.conf einfach an dass dieser nur .php Dateien als PHP parst.
Dennoch sollte man auch hier sagen das evtl. die Möglichkeit besteht,
dass die Datei z.B. als php.png hochgeladen, und dann einfach in *.php umbenannt wird.

 

Gruß,

Julian


555x gelesen

Print Friendly, PDF & Email

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.