
WARNUNG: Dies ist eine angreifbare Anwendung zum Testen des Exploits für die defekte Zugriffskontrolle von Jetpack < 13.9.1 (CVE-2024-9926). Nutzung auf eigene Gefahr!
Dies ist eine anfällige Anwendung zum Testen des Exploits für die Jetpack < 13.9.1 Broken Access Control (CVE-2024-9926).
Diese Anwendung enthält schwerwiegende Sicherheitslücken. Verwenden Sie sie auf eigenes Risiko! Es wird empfohlen, eine gesicherte und abgeschottete Umgebung zu verwenden (z. B. eine VM mit einem aktuellen Snapshot und Host-Only-Netzwerk). Laden Sie diese Anwendung nicht auf Internet-verbundene Server hoch, da diese kompromittiert werden.
HAFTUNGSAUSSCHLUSS: Ich übernehme keine Verantwortung für die Art und Weise, wie jemand diese Anwendung nutzt. Der einzige Zweck dieser Anwendung besteht darin, ein Testszenario für den Exploit des Jetpack < 13.9.1 Broken Access Control (CVE-2024-9926) zu sein, und sie sollte nicht böswillig eingesetzt werden. Wenn Ihr Server durch die Installation dieser Anwendung kompromittiert wird, liegt dies nicht in meiner Verantwortung, sondern in der Verantwortung der Person(en), die sie hochgeladen und installiert haben.
Hier sind die Schritte zur Einrichtung der Umgebung:
./up.sh, um die Umgebung zu starten.Der Container heißt vuln-wp-jetpack.
Zum Abbau der Umgebung verwenden Sie den Befehl ./down.sh oder ./down_and_delete.sh, um auch Images und das Datenbank-Volume zu entfernen.
Ein Blick auf die Behebung macht deutlich, dass die einzige Prüfung, die sowohl von get_items_permissions_check() als auch von get_item_permissions_check() durchgeführt wird, die Mitgliedschaft des Benutzers im Blog ist.
Beide Methoden werden in der Klasse Contact_Form_Endpoint der Datei automattic/jetpack-forms/src/contact-form/class-contact-form-endpoint.php deklariert. Wie der Kommentar am Anfang der Klasse sagt, ist diese Klasse...
Wird als
rest_controller_class-Parameter verwendet, wenn derfeedback-Beitragstyp in\Automattic\Jetpack\Forms\ContactForm\Contact_Formregistriert ist.
Dies ist in der Datei automattic/jetpack-forms/src/contact-form/class-contact-form-plugin.php in Zeile 201 zu sehen, wo der benutzerdefinierte Beitragstyp feedback registriert wird.
Die verfügbaren Typen können über REST-APIs mit einer Anfrage wie der folgenden abgerufen werden.
GET /?rest_route=/wp/v2/types
Die Antwort enthält den Typ feedback.
Um die Schwachstelle auszunutzen, genügt eine Anfrage wie die folgende.
GET /?rest_route=/wp/v2/feedback
Die Anfrage muss einen Autorisierungs-Header mit einem Anwendungspasswort wie dem folgenden enthalten.
Authorization: Basic eW91cl91c2VybmFtZTp5b3VyX2FwcGxpY2F0aW9uX3Bhc3N3b3Jk
Ein Exploit-Skript in Python finden Sie hier.
Dieses Projekt ist unter der Unlicense lizenziert – siehe die Datei LICENSE für Details.