Über XML-RPC
XML-RPC ist ein Protokoll für Remote-Prozeduraufrufe, das XML für den Datenaustausch verwendet. In XML-RPC erstellt der Client, der einen Aufruf an eine Remote-Methode tätigen möchte, die Eingabeparameter in Form von XML und sendet diese über eine HTTP-Anfrage an einen Remote-Server, der das XML-RPC-Protokoll implementiert.
XML-RPC in WordPress verstehen
WordPress ist eine komplette Blogging-Plattform. Es ist sehr anpassbar und einfach, die Website zu entwickeln. Mit WordPress XML-RPC können WordPress-Blogging-Clients erstellt werden, eine andere Software, die einige Batch-Aufgaben ausführt, wie das Erstellen mehrerer Posts aus einer Datei usw. Das XML-RPC-System kann durch die WordPress-Plugins erweitert werden, um sein Verhalten zu ändern. Die XML-RPC-Funktionalität ist seit WP 3.5 standardmäßig aktiviert. XML-RPC ist standardmäßig aktiviert – insbesondere bei mobilen Geräten und Desktop-Apps von Drittanbietern, die es verwenden Kommunikation mit WordPress.
Das Problem mit XMLRPC ist, dass es dazu führen kann, dass CPU und Speicher erschöpft sind und die Datenbank der Site die maximale Anzahl offener Verbindungen erreicht. Dies führt dazu, dass die anfällige Website (und der Server) für einen bestimmten Zeitraum ausfällt, was sich auf die Verfügbarkeit Ihrer Website auswirkt.
Es gibt vier Möglichkeiten, wie die XML-RPC-API von WP von einem Angreifer missbraucht werden könnte:
- Intel-Versammlung - Angreifer können nach bestimmten Ports im internen Netzwerk des Ziels suchen
- Port-Scanning — Angreifer können Hosts im internen Netzwerk portieren
- DoS-Attacken —Abgesehen von der Datenübertragung ist xmplrpc.php auch für die Aktivierung der Pingbacks und Trackbacks verantwortlich. Dies sind die Benachrichtigungen, die Sie erhalten, wenn ein Blog oder eine Website eines Drittanbieters auf Ihre Website verlinkt. Obwohl es ersetzt wurde, verwenden einige Websites immer noch XML-RPC.php für die Abwärtskompatibilität. Wenn Sie einer von ihnen sind, können Hacker DDoS-Angriffe auf xmlrpc.php starten, indem sie eine große Anzahl von Pingbacks senden und Ihre Website herausbringen. von Action oder Sie können sagen - machen Sie es für Ihre Benutzer nicht verfügbar.
- Router Hacking — Angreifer können einen internen Router im Netzwerk neu konfigurieren
- Brute-Force-Angriffe XML-RPC (XML-Remote Processing Call) ermöglicht verschlüsselte Remote-Anrufe, die über HTTP transportiert werden und es Ihnen ermöglichen, eine Datei oder einen Inhalt von Ihrer WordPress-Website aus der Ferne zu posten, zu bearbeiten oder zu löschen. Bei jeder Anforderung sendet xmplrpc.php die Authentifizierungsinformationen. Es macht es einfacher, eine große Datenmenge auf einmal zu pushen. Aber die Fähigkeit, eine große Datenmenge gleichzeitig zu pushen, impliziert, dass sogar Hacker eine Reihe von Passwörtern einschleichen können. Wenn ein Hacker genügend Authentifizierungsanforderungen mit einer anderen Kombination aus Benutzername und Passwort sendet, wird er möglicherweise irgendwann richtig gestellt, und als Ergebnis wird Ihre Website kompromittiert.
Überprüfen Sie, ob XML-RPC in Ihrem Blog bereits deaktiviert ist
Bevor wir weiter gehen, müssen wir eine einfache Überprüfung durchführen Die Validierung von XML-RPC ist in Ihrem Blog aktiviert. Um zu testen, versuchen Sie den Zugriff auf die xmlrpc.php-Datei in Ihrem Browser durch Zugriff auf die URL https://domain.com/xmlrpc.php (Ersetzen Sie domain.com mit Ihrem Domainnamen).
Wenn es deaktiviert ist, erhalten Sie eine "403 - Verbotene Nachricht". Wenn Sie eine andere Nachricht erhalten, lesen Sie weiter, um Ihre Minderungsoptionen zu verstehen.
Codebasierte Minderungs- oder Workarounds
1. Wenn Sie die XML-RPC-Funktionalität nicht für irgendetwas verwenden, um vor Schwachstellen zu schützen, fügen Sie unten Zeilen hinzu .htaccess:
# protect xmlrpc <IfModule mod_alias.c> RedirectMatch 403 /xmlrpc.php </IfModule>
2. Um Anfragen für xmlrpc.php auf eine benutzerdefinierte Seite umzuleiten, ändern Sie den RedirectMatch wie folgt:
# protect xmlrpc Redirect 301 /xmlrpc.php http://example.com/custom-page.php
3. Den Zugriff auf xmlrpc.php verweigern:
# protect xmlrpc <Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
4. Erlauben Sie den Zugriff auf xmlrpc.php nur für bestimmte IP-Adressen.
# protect xmlrpc <Files xmlrpc.php> Order Deny,Allow Deny from all Allow from <IP> Allow from <IP> </Files>
Sie können auch folgenden Code zu Ihrer wp config.php nach der Zeile require once(ABSPATH . ‘wp-settings.php’) hinzufügen; wenn Sie XML-RPC für Ihre Website deaktivieren möchten.
add_filter('xmlrpc_enabled', '__return_false');

