{"id":208103,"date":"2018-08-18T00:48:00","date_gmt":"2018-08-17T22:48:00","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=208103"},"modified":"2021-05-17T08:23:42","modified_gmt":"2021-05-17T06:23:42","slug":"wordpress-sites-per-php-schwachstelle-angreifbar","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2018\/08\/18\/wordpress-sites-per-php-schwachstelle-angreifbar\/","title":{"rendered":"WordPress-Sites per PHP-Schwachstelle angreifbar"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2014\/07\/wp_thumb.jpg\" alt=\"\" width=\"64\" height=\"64\" align=\"left\" \/>WordPress-Seiten sind m\u00f6glicherweise durch eine PHP-Schwachstelle f\u00fcr Remote Code-Ausf\u00fchrung angreifbar. Das hat ein Sicherheitsforscher herausgefunden und dokumentiert.<\/p>\n<p><!--more--><\/p>\n<p>Die Angriffsmethode geht auf PHP Unserialisierungs- oder Objektinjektionsschwachstellen zur\u00fcck, die erstmals 2009 dokumentiert wurden. Diese Schwachstellen k\u00f6nnten es einem Angreifer erm\u00f6glichen, verschiedene Arten von Angriffen durchzuf\u00fchren. Dazu muss er allerdings b\u00f6sartige Eingaben an die PHP-Funktion <em>unserialize() <\/em>schicken.<\/p>\n<blockquote><p>Serialisierung ist der Prozess der Umwandlung von Datenobjekten in einen einfachen String. Die unserialize-Funktion erm\u00f6glicht einem PHP-Programm wieder ein Objekt aus einem String zu machen.<\/p><\/blockquote>\n<p>Sam Thomas, der Sicherheitsforscher der Firma Secarma, hat die Entdeckung der unserialize-Schwachstellen in WordPress <a href=\"https:\/\/web.archive.org\/web\/20210328115328\/https:\/\/cdn2.hubspot.net\/hubfs\/3853213\/us-18-Thomas-It%27s-A-PHP-Unserialization-Vulnerability-Jim-But-Not-As-We-....pdf\" target=\"_blank\" rel=\"noopener\">hier beschrieben.<\/a> Thomas fand heraus, dass ein Angreifer Phar-Archive verwenden kann, um einen Deserialisierungsangriff auszul\u00f6sen, ohne dass er die Funktion <em>unserialize() <\/em>direkt aufrufen muss.<\/p>\n<blockquote><p>Phar-Dateien sind ein Archivformat in PHP, in dem Metadaten in einem serialisierten Format gespeichert werden. Bei jedem Zugriff einer Dateioperation (fopen, file_exists, file_get_contents, etc.) muss die Archivdatei unserialisiert werden.<\/p><\/blockquote>\n<p>Um diese Schwachstelle aber erfolgreich ausnutzen zu k\u00f6nnen, muss ein Angreifer ein g\u00fcltiges Phar-Archiv mit dem sch\u00e4dlichen Payload-Objekt auf das lokale Dateisystem des Ziels hochladen und die Dateioperationsfunktion \u00fcber den \"phar:\/\/\"-Stream-Wrapper darauf zugreifen lassen. In meinen Blogs ist dieser Ansatz nicht m\u00f6glich, da ich den Upload von Phar-Archivdateien nicht erm\u00f6gliche. Allerdings schreibt Thomas, dass ein Angreifer diese Schwachstelle sogar mit einem modifizierten JPEG-Bild ausnutzen kann. Er hat dazu ein Phar-Archiv in ein g\u00fcltiges JPEG umgewandelt, indem er seine ersten 100 Bytes \u00e4nderte.<\/p>\n<p>Thomas schreibt: Sobald das erstellte Thumbnail auf den Ziel-WordPress-Server hochgeladen wurde, kann der Angreifer eine andere Funktion verwenden, um die gleiche Bilddatei wie ein Phar-Archiv mit dem \"phar:\/\/\"-Stream-Wrapper aufzurufen und schlie\u00dflich den beliebigen Code auszuf\u00fchren, wenn das Programm die Metadaten deserialisiert. Allerdings ist mir nicht klar, wie das gehen kann \u2013 m\u00f6glicherweise mit in der Phar-Archivdatei eingebetteten Anweisungen. Wird der Upload jeglicher Dateien durch Blog-Besucher unterbunden, d\u00fcrfte diese Sicherheitsl\u00fccke nicht ausnutzbar sein. Weitere Details sind <a href=\"https:\/\/thehackernews.com\/2018\/08\/php-deserialization-wordpress.html\" target=\"_blank\" rel=\"noopener\">diesem Artikel<\/a> bei The Hacker News oder dem verlinkten Original-Artikel zu entnehmen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress-Seiten sind m\u00f6glicherweise durch eine PHP-Schwachstelle f\u00fcr Remote Code-Ausf\u00fchrung angreifbar. Das hat ein Sicherheitsforscher herausgefunden und dokumentiert.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426,1574],"tags":[4328,4349],"class_list":["post-208103","post","type-post","status-publish","format-standard","hentry","category-sicherheit","category-wordpress","tag-sicherheit","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/208103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=208103"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/208103\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=208103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=208103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=208103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}