it-swarm.com.de

Ist es möglich, einen Pufferüberlauf in WordPress zu finden?

Ich hatte ein interessantes Gespräch mit einem Pentester, der mir erzählte, dass er in Wordpress einen Pufferüberlauf gefunden hatte. Die fragliche Person war wirklich fest davon überzeugt, dass dies wahr ist. Der Kunde ist etwas skeptisch gegenüber den technischen Fähigkeiten der Pentesting-Firma und hat mich nach meiner Meinung gefragt.

Die Frage, die ich habe, lautet also: Hat jemand jemals gehört, dass jemand einen Pufferüberlauf in WordPress) gefunden hat, indem er einfach eine GET-Anfrage an ein PHP gestellt hat?

Meine Meinung: Wenn dies wahr wäre, hätte er einen Pufferüberlauf im PHP Interpreter) gefunden, und das wäre riesig. Ich denke also nicht, dass es wahr ist.

EDIT: Die BOF war an zwei Orten:

  • In einer PHP-Funktion, die vom Client mit der gleichen Nutzlast wie eine XSS-Sicherheitsanfälligkeit erstellt wurde (also so etwas wie 123 "> alert (0);

  • Im wp_session-Token mit nur ein paar A's (~ 60)

Es wurde alles extern ohne Zugriff auf den Server in einem routinemäßigen schnellen Pentest von ungefähr 10 verschiedenen Websites durchgeführt ...

Ich werde nach einer tatsächlichen Codeüberprüfung über die Teile, die anfällig sein sollten, ein Update durchführen

EDIT : Also habe ich die Codeüberprüfung durchgeführt und es war in der Tat eine BS-Geschichte. Die BOFs existierten nicht nur überhaupt nicht, er sagte auch, er habe tatsächlich ein SQLi in einem Teil des Codes gefunden, der mit einer Datenbank absolut nichts zu tun hatte.

Aber zumindest die Diskussion in den Kommentaren war sehr aufschlussreich über die Möglichkeiten dieser Art von Standardplattformen und CMS von BOF, also habe ich viel gelernt! Vielen Dank!

19
Wealot

Da PHP die Speicherverwaltung und viele Dinge selbst erledigt, macht es für mich keinen Sinn, einen Pufferüberlauf speziell in WordPress) zu finden.

Bevor ich diesen Penetrationstester diskreditiere, würde ich ihn/sie um Dokumentation des Befundes bitten in Frage stellen. Da er/sie für diesen Kunden arbeitet (hört sich so an, korrigieren Sie mich, wenn ich falsch liege), ist es sein/ihr Job, dem Kunden ein solches Problem zu melden, einschließlich einer Dokumentation von mindestens a Weg, um das Problem aufzuspüren/zu reproduzieren.

Ich bin sehr skeptisch, wie Sie sagen, dass er/sie nur von außen Zugang zum Webservice hatte. Das Überprüfen eines Problems auf niedriger Ebene wie eines Pufferüberlaufs (der sogar weit über den Webservice hinausgeht oder wordpress im Allgemeinen) ist von außen nahezu unmöglich.

Das Ausführen eines Codes ist schwierig, selbst wenn Sie Zugriff auf den Quellcode haben, was anscheinend nicht der Fall ist (vorausgesetzt, es handelt sich nicht um einen Whitebox-Test).

P.S.: Wenn Sie eine Antwort vom Kunden/Pentester erhalten, würde ich sie gerne hören. Du hast mich aus irgendeinem Grund ziemlich neugierig gemacht ...

27
GxTruth

Es könnte sein, dass er in PHP oder glibc einen Pufferüberlauf gefunden hat, der über Wordpress ausgenutzt werden kann. Vor 3 Jahren gab es beispielsweise eine Lücke in gethostbyname (), die über Wordpress ausgenutzt werden konnte. Es wird als GHOST-Sicherheitslücke bezeichnet.

Wenn Sie ein sehr altes Betriebssystem ohne Updates sowie ein sehr altes Wordpress haben, könnte dies zutreffen.

20
Aria

Wie GxTruth erwähnt hat , PHP führt die Speicherverwaltung durch. Dies bedeutet, dass alles, was auf PHP ausgeführt wird, grundsätzlich genauso sicher gegen Pufferüberläufe ist wie PHP (es sei denn, Sie tun etwas wirklich Verrücktes ).

PHP ist jedoch nicht 100% sicher vor Pufferüberläufen: https://stackoverflow.com/questions/11817576/is-php-buffer-overflow-possible

Wenn dieser Pentester tatsächlich einen Pufferüberlauf gefunden hat, sollte er Ihnen genau sagen können, wie er reproduziert werden soll. An diesem Punkt sollten Sie in der Lage sein, dies im Code zu verfolgen. Möglicherweise wird dies durch eine zuvor gepatchte Version von WP/PHP verursacht. Stellen Sie immer sicher, dass Sie über die neuesten Patches in Ihrem gesamten Tech-Stack auf dem Laufenden sind.

Wenn sich herausstellt, dass dies in den neuesten Versionen ein Fehler ist, sammeln Sie die relevanten Informationen und legen Sie die entsprechenden Fehlerberichte ab. Sie können die Leute, die PHP entwickeln, hier benachrichtigen: http://bugs.php.net/ . Stellen Sie sicher, dass Sie Ihren Fehler als security -bezogen markieren. Es wäre auch relevant, dies zuerst zu lesen: https://wiki.php.net/security . Melden Sie dies auch WordPress oder Entwicklern von Plugins/Themes von Drittanbietern, die betroffen sind, damit sie Schritte unternehmen können, um das Problem zu beheben, während PHP selbst) gepatcht.


Und wenn dies ein Problem ist, so neugierig wir auch sein mögen, zu hören, was es ist, erst öffentlich darüber berichten, bis die Betreuer des betroffenen Codes Sie haben die Möglichkeit, das Problem zu beheben, da dies viele Websites im Internet betrifft und nicht nur Ihre.

6
Kallmanation

Es ist wahrscheinlich einer dieser vier:

  • Er kennt möglicherweise nicht den richtigen Namen und nennt so etwas wie Hashdos einen "Pufferüberlauf", weil er das Array so weit ausfüllt, dass es nicht mehr reagiert oder abstürzt.
  • Möglicherweise hat er in PHP] einen Pufferüberlauf gefunden und nennt ihn für Laien "in Wordpress", weil die Leute möglicherweise nicht wissen, dass sie PHP unter der Haube) ausführen und kenne es nur als Wordpress.
  • Möglicherweise hat er einen Pufferüberlauf gefunden, damit PHP) über Wordpress ausgenutzt werden kann.
  • Er könnte keine Ahnung haben, wovon er spricht.

Ich würde sagen, letzteres ist bei weitem am wahrscheinlichsten.

4
Luc

Möglicherweise hat er einen Pufferüberlauf im Webserver (z. B. Apache HTTPD) selbst gefunden, anstatt in PHP oder Ihrer Anwendung. Beispiel: https://www.cvedetails.com/cve/CVE-1999-0071/ "Überlauf des Apache-httpd-Cookie-Puffers für Versionen 1.1.1 und früher.", Dieser CVE stürzt das untergeordnete Apache ab Instanz für den Fall, dass der Server mod_cookie verwendet, um ein Cookie in der HTTP-Antwort zu ändern. Wie ich mich erinnere, hat der Angreifer den Absturz verursacht, wenn er einen langen String in den entsprechenden Cookie-Wert eingefügt hat.

0
Manjula