Wordpress xmlrpc.php - Häufige Sicherheitslücken und wie man sie ausnutzt

Hallo! , wie geht's ? , Bilal Rizwan hier, hoffe, dass es dir gut geht und du Spaß hast, von der Community zu lernen, wie ich es bin.

Worum geht es in diesem Beitrag?
Möglicherweise haben Sie eine /xmlrpc.php-Datei auf vielen von Ihnen besuchten WordPress-Sites gesehen und sogar versucht, den Fehler zu suchen (der XML-RPC-Server akzeptiert nur POST-Anforderungen), der angezeigt wird, wenn Sie http://site.com/wp besuchen /xmlrpc.phpIn diesem Beitrag werde ich versuchen, die allgemeinen Schwachstellen hervorzuheben, die mit der Datei xmlrpc.php verbunden sind.

Was ist XML-RPC?

XML-RPC unter WordPress ist eigentlich eine API oder „Anwendungsprogrammschnittstelle“. Entwickler, die mobile Apps, Desktop-Apps und andere Dienste erstellen, können damit mit Ihrer WordPress-Site kommunizieren. Die von WordPress bereitgestellte XML-RPC-API bietet Entwicklern die Möglichkeit, Anwendungen (für Sie) zu schreiben, die viele der Aufgaben ausführen können, die Sie ausführen können, wenn Sie über die Weboberfläche bei WordPress angemeldet sind. Diese schließen ein:
Veröffentlichen Sie einen Beitrag
Bearbeiten Sie einen Beitrag
Einen Beitrag löschen.
Laden Sie eine neue Datei hoch (z. B. ein Bild für einen Beitrag)
Holen Sie sich eine Liste von Kommentaren
Kommentare bearbeiten

Häufige Sicherheitslücken in XML-RPC

Die Hauptschwächen von XML-RPC sind: Brute-Force-Angriffe: Angreifer versuchen, sich mit xmlrpc.php bei WordPress anzumelden.
Lassen Sie uns sehen, wie dies tatsächlich geschieht und wie Sie dies möglicherweise nutzen können, während Sie versuchen, eine WordPress-Site auf potenzielle Schwachstellen zu testen

BruteForce-Angriff

  1. Dies sehen Sie ursprünglich, wenn Sie versuchen, die Datei xmlrpc.php unter zu öffnen
    http: // / /xmlrpc.php

2) Öffnen Sie Ihren Proxy (ich verwende Burp) und senden Sie die Anfrage erneut

3) Als Erstes müssen Sie eine POST-Anfrage senden und alle verfügbaren Methoden auflisten. Warum? Auf diese Weise wissen wir, welche Aktionen überhaupt möglich sind, und können eine davon möglicherweise für einen Angriff verwenden.
UM alle Methoden aufzulisten Senden Sie eine POST-Anfrage mit den folgenden POST-Daten, wie in der Abbildung gezeigt, und Sie erhalten eine Antwort mit allen verfügbaren Methoden


system.listMethods

Suchen Sie nach Folgendem: Wenn Sie feststellen, dass sie verfügbar sind, können wir mit dem Angriff fortfahren
*) wp.getUserBlogs
*) wp.getCategories
*) metaWeblog.getUsersBlogs
HINWEIS: Es gibt einige weitere Methoden, die jedoch am häufigsten zur Verfügung stehen. Ich habe mich zuvor mit diesen Methoden befasst, um nur diejenigen zu erwähnen, an die ich mich im Moment erinnern kann.

3) Um nun die Bruteforce-Anmeldung durchzuführen, senden Sie Folgendes an die POST-Anfrage, wenn Sie gültige Benutzernamen kennen, die noch besser wären
Ich empfehle wp-scan, um eine Liste der gültigen Benutzernamen zu finden. Fast immer versuchen Unternehmen niemals, die Aufzählung von Benutzernamen auf WordPress-Sites zu verhindern.


wp.getUsersBlogs

admin
pass

4) Jetzt können Sie dies einfach in Eindringling laden und bruteforce weg.
Wenn Sie den falschen Pass eingeben oder den richtigen eingeben, erhalten Sie eine Antwort in Höhe von 200 OK. Sie sollten also anhand der Größe der Antwort entscheiden, welche Antwort richtig und welche falsch ist, wenn Sie einen Eindringling verwenden
Die Antwort bei korrekter Anmeldung sieht wie folgt aus

Andere Angriffe?
XSPA oder einfach Port-Scannen!

  1. Listen Sie alle Methoden auf und suchen Sie nach den folgenden
    "Pingback.ping"

2) Wenn Sie die Zeichenfolge pingback.ping finden möchten, können Sie mit netcat oder python server, nodejs server oder sogar apache logs beliebig weitermachen. Ich verwende den http-Server des Knotens.
Starten Sie Ihren Server und senden Sie die folgende Anfrage in Postdaten


pingback.ping

http: // :
http: //

Hier sind 2 Dinge zu füllen
1) Der Link Ihres Servers
2) Link eines gültigen Beitrags von der WordPress-Site, über den der Ping zurückgerufen wird

Wenn Sie in der Antwort einen Fehlercode und einen Wert größer als 0 ( 17 ) erhalten, bedeutet dies, dass der Port offen ist. Sie können dies überprüfen, indem Sie Ihre Serverprotokolle überprüfen.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mit der gleichen Technik konnte ich heute ein kleines Kopfgeld von 600 $ verdienen, und zwar mit einem privaten Bugcrowd-Programm.

WENN ich etwas übersehen oder falsch geschrieben habe, kannst du einen Kommentar hinterlassen oder mich unter kontaktieren

http://fb.com/th3.3inst3in