Archiv der Kategorie: Wordpress

WordPress Full Path Disclosure Verwundbarkeit

Über die Website von Sergej Müller (http://cup.wpcoder.de) bin ich auf die WordPress Full Path Disclosure Verwundbarkeit gestoßen. Da für mich als Programmierer das Thema SIcherheit natürlich wichtig ist habe ich gleich mal probiert ob es auch bei meiner Worpress installation der Fall ist. Leider ja.

Sergej hat auf seiner Seite ja auch gleich ein paar Tipps gegeben um die Verwundbarkeit abzustellen. Nur leider sind die zum Beispiel auf einem 1&1 Webspace nicht umsetzbar da man

php_flag display_errors Off

in der .htaccess nicht setzen kann ohne die Server Fehlermeldung „500 Internal server error“ zu erhalten. Die einzige Möglichkeit die hier 1&1 bietet ist das anlegen einer php.ini und dort die EInstellung vorzumehmen. Das Problem ist nur, dass die php.ini nur für das Verzeichniss gilt in dem die php.ini liegt. Es muss also in JEDES WordPress Verzeichniss die php.ini kopiert werden. Installiert man nun ein Plugin oder Template fängt man wieder mit dem kopieren an.

Dies ist zwar machbar, aber ziemlich lästig und aufwendig und auch nur für für Leute die sich auskennen. Für den einfachen WordPress Benutzer der sich ein Blog installieren möchte ist es zu aufwändig und er weis auch von der Full Path Disclosure Verwundbarkeit nichts.

Den Machern von Wordpess ist das alles bekannt. Nur sind die der Meinung das ist kein Problem von WordPress sondern vom Server und sollte somit dort gelöst werden. Somit sind wir wieder am Anfang. Der Rat sich einen anderen Hoster zu suchen ist meiner Ansicht auch nur bedingt machbar.

Eigentlich gäbe es für die WordPress Macher ein ganz einfache Lösung. Joomla macht es zum beispiel so.
In allen PHP-Dateien die direkt aufgerufen werden dürfen wird, direkt oder über ein Include, eine Konstante mit dem „_JEXEC“ definiert. In allen anderen PHP-Dateien wird ganz am Anfang über den folgenden Code geprüft ob die Konstante definiert ist.

defined('_JEXEC') or die('Restricted access');

Ist die Konstante nicht definiert wird die Ausführung des Scripts sofort beendet. Ganz simpel und bei Joomla Standard. Das schöne an der Lösung ist, dass PHP weiter Fehler anzeigt wenn diese durch Programierfehler oder Inkompatiblitäten auftreten. Bei der php.ini und .htaccess Lösung bleibt das Browser-Fenster leer. Auserdem ist man bei der Joomla Lösung nicht von den Servereinstellung und dem Hoster abhänig.

Nun wird man nicht nur bei 1&1 sondern sicher auch bei anderen Hostern nicht die Möglichkeit haben entsprechende Einstellungen in der .htaccess vorzunehmen. Es wäre also schön wenn die WordPress Macher der Thematik annehmen und nicht länger einfach von sich weisen. Nicht bei der Beliebtheit von WordPress.

Ob die Full Path Disclosure Verwundbarkeit tatsächlich Informationen liefert um den Server zu hacken hängt letztlich dann doch wieder vom Server-Betreiber ab.

PS: Wenn die WordPress Macher die lesen können sie gleich in alle Verzeichnisse, in denen es keine index.php gibt, eine leere index.html legen. Angreifer können dann nicht den Verzeichnissinhalt sehen (entsprechende Servereinstellung vorrausgesetzt).