Wordpress Datenklau durch die Hintertür
Wie unzureichend geschützte Wordpress-Installationen Daten preisgeben[Bearbeiten | Quelltext bearbeiten]
Wordpress gilt als vielseitiges und einfach zu wartendes CMS. Doch viele Admins vergessen, die mächtigen Schnittstellen zu schützen, und ermöglichen so ungewollt den Zugriff auf nicht öffentliche Inhalte und Dateien.
Wordpress ist das weltweit wohl meistgenutzte CMS, es kommt in großen Konzernen genauso zum Einsatz wie bei privaten Homepages. Viele Provider bieten Wordpress als Komplettpaket inklusive Webserver an, und für die grundlegende Bedienung braucht es kein Informatikstudium. Doch das System hat Tücken: So erlauben viele Wordpress-Installationen über die Hintertür Zugriff auf Daten, die der Betreiber eigentlich gar nicht veröffentlichen wollte.
Die Ursache für die ungeplante Geschwätzigkeit ist die Programmierschnittstelle, das JSON-API, über das man Wordpress mit anderen Programmen verbinden kann. Dass diese Schnittstelle ohne weitere Maßnahmen nicht gegen lesende Zugriffe geschützt ist, verrät die offizielle Dokumentation leider nicht an prominenter Stelle.
In die Datei functions.php des Themas einfügen:
/**JSON-API abschalten
in der functions.php Datei des Themes einfügen
*/
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( '401', 'not allowed.', array('status' => 401) );
}
return $result;
});
Offene Hintertüren[Bearbeiten | Quelltext bearbeiten]
Ob die Admins vergessen haben, die API-Hintertüren zu schließen, finden Sie ganz einfach mit dem Browser heraus, indem Sie das Unterverzeichnis „/wp-json“ ansurfen. Wird Ihnen hier eine JSON-Struktur angezeigt, ist das API meist komplett offen. Wenn das JSON-API nicht unter „wp-json“ antwortet, muss man an anderen Stellen danach suchen.
Auf der Website der US-Sängerin Laura Brehm etwa, die für ihre Zusammenarbeit mit dem deutschen EDM-Musiker TheFatRat bekannt geworden ist, befindet sich das API unter „/index.php/wp-json“. Das findet man leicht heraus, indem man im ausgelieferten HTML-Code der Seite nach „wp-json“ sucht.
Hat man das API lokalisiert, kann man sich per Browser weiter umsehen. Ein Blick in „/index.php/wp-json/wp/v2/media“ förderte ein paar vergessene, sehr hoch auflösende Bilder der Sängerin zutage. Dies ist ein Standardproblem von so gut wie allen Wordpress-Installationen, die wir im Rahmen unserer Recherche abgeklopft haben: Oft werden Bilder in Originalauflösung mit mehreren Megapixeln hochgeladen, die Wordpress dann in mehrere Standardauflösungen herunterrechnet. Eingebunden werden dann die verkleinerten Bilder, doch wenn man die Originale nicht löscht, findet man sie über das JSON-API und kann sie ungeschützt herunterladen.
Erkundet man das JSON-API weiter, findet man unter „/index.php/wp-json/wp/v2/users“ auf der Seite von Laura Brehm heraus, dass es bei dieser Wordpress-Installation nur einen einzigen Benutzer mit dem Namen „laura“ gibt – eine wichtige Information, mit der Angreifer anschließend über die ebenfalls offene XML-RPC-Schnittstelle eine Brute-Force-Attacke auf das Passwort mit mehreren Hundert Versuchen pro Aufruf starten könnten.
Andere Wordpress-Seiten verwenden die E-Mail-Adresse der Benutzer als Benutzernamen oder als Wordpress-Slug, darunter auch eine Seite, die sich mit der asiatischen Poker-Variante Teen Patti beschäftigt. Die Nachlässigkeit macht den Endpunkt „wp/v2/users“ des JSON-API zu einem maschinenlesbaren Selbstbedienungsladen für Spammer.