
Python-PoC zur Validierung der unauthentifizierten Rechteausweitung CVE-2025-6325 und des beliebigen Datei-Upload-RCE CVE-2025-6327 in King Addons for Elementor <= 51.1.36.
Forschungs- und Validierungstool für King Addons for Elementor <= 51.1.36, das zwei dokumentierte Schwachstellen abdeckt:
Nur für autorisierte Sicherheitstests, Schwachstellenforschung und kontrollierte Laborumgebungen.
Dieses Projekt bietet einen Dual-Purpose-PoC zur Validierung der Sicherheitsauswirkungen von zwei Schwachstellen in King Addons for Elementor.
Unauthentifizierte Rechteausweitung über die King Addons-Registrierungsfunktion.
Der verwundbare Ablauf akzeptiert einen clientseitig kontrollierten user_role-Wert und übergibt ihn an die WordPress-Benutzererstellung, ohne eine angemessene Rollen-Allowlist durchzusetzen.
Betroffene Version: <= 51.1.36
Gepatchte Version: 51.1.37
Der verwundbare Registrierungsablauf verwendet:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
Der PoC überprüft außerdem, ob das erstellte Konto sich authentifizieren und auf die WordPress-Benutzerverwaltungsseite zugreifen kann.
Unauthentifizierter beliebiger Datei-Upload über die Upload-Funktion des King Addons-Formularerstellers.
Der verwundbare Upload-Handler kann fälschlicherweise eine PHP-Datei akzeptieren, was zu einer über das Web erreichbaren hochgeladenen Datei und potenzieller serverseitiger Codeausführung führt.
Betroffene Version: <= 51.1.36
Gepatchte Version: 51.1.37
Die relevante AJAX-Aktion ist:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
Der PoC validiert den Upload-Ablauf und prüft, ob die hochgeladene Testdatei einen harmlosen id-Befehl ausführen kann.
Das Skript unterstützt vier Betriebsmodi:
check
privesc
upload
both
Diese Modi werden direkt über die Kommandozeilenschnittstelle bereitgestellt.
Python 3 ist erforderlich.
Es sind keine Python-Pakete von Drittanbietern erforderlich.
Überprüfen Sie Ihre Python-Version:
python3 --version
Führen Sie beide Schwachstellenprüfungen aus:
python3 exploit.py -u http://target.local --exploit both
Entdecken Sie exponierte King Addons-Nonces, ohne die Exploit-Phasen auszuführen:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
Erstellen Sie eine Zieldatei:
http://target1.local
https://target2.local
http://target3.local
Kommentare und leere Zeilen werden ignoriert.
Führen Sie eine passive Bewertung aus:
python3 exploit.py -l targets.txt --exploit check
Führen Sie beide Validierungsphasen aus:
python3 exploit.py -l targets.txt --exploit both -t 20
Führen Sie die Upload-Validierung aus:
python3 exploit.py -l targets.txt --exploit upload -t 20
Führen Sie die Validierung der Rechteausweitung aus:
python3 exploit.py -l targets.txt --exploit privesc -t 20
Der PoC durchsucht automatisch Zielseiten nach den Nonces, die für die beiden verwundbaren Abläufe erforderlich sind.
Standard-Crawler-Einstellungen:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
Diese Standardwerte sind in der CLI-Konfiguration des Skripts definiert.
Beispiel:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
Das Skript verwendet standardmäßig results.tsv für strukturierte Ergebnisse und loot.txt für erfolgreiche Validierungseinträge.
Während der Ausführung meldet das Tool mehrere Zustände.
Zeigt an, dass die Upload-Validierung erfolgreich war und die Test-PHP-Datei auf die Verifizierungsanfrage geantwortet hat.
Beispiel:
PWNED [SHELL]
Zeigt an, dass die Validierung der Rechteausweitung ein Konto über den verwundbaren Registrierungsablauf erstellt hat.
Das Tool zeichnet zusätzlich auf, ob das Konto gegen die WordPress-Benutzerverwaltungsseite verifiziert wurde.
Das erstellte Konto wurde erfolgreich authentifiziert und auf der WordPress-Benutzerseite bestätigt.
Die Registrierungsanfrage war erfolgreich, aber der nachfolgende Verifizierungsschritt konnte das resultierende Konto nicht bestätigen.
Es wurde kein erfolgreiches Validierungsergebnis erzielt.
Das Ziel erzeugte einen Netzwerk-, Parsing-, Crawling- oder anderen Ausführungsfehler.
Strukturierte Ergebnisse werden als TSV geschrieben:
results.tsv
Die Ausgabe enthält Felder für:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
Dieses Format ist nützlich für den Import von Ergebnissen in Tabellenkalkulationen oder die weitere Verarbeitung.
Erfolgreiche Validierungseinträge werden zusätzlich geschrieben nach:
loot.txt
Das Skript schreibt Shell- und Rechte-Validierungsergebnisse als separate Einträge.
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
Der PoC übermittelt speziell:
user_role=administrator
an den Registrierungsendpunkt.
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
Der PoC verwendet einen eindeutig generierten Testdateinamen und prüft die zurückgegebene Upload-URL.
Die Forschungsimplementierung wurde getestet gegen:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
Die Forschungsnotizen berichten von erfolgreicher Validierung beider Abläufe in einer kontrollierten Laborumgebung, einschließlich Rechteausweitung und Shell-Ausführung. Eine Negativkontrolle wurde ebenfalls gegen Version 51.1.37 getestet.
Die Forschungsnotizen deuten darauf hin, dass einige WordPress.org-ZIP-Releases für 51.1.35 und 51.1.36 anschließend mit teilweisen Fixes neu getaggt wurden.
Die verwundbare Implementierung wurde daher unter Verwendung des referenzierten SVN-Tags 51.1.14 bestätigt.
Wenn Sie die Forschung reproduzieren, verwenden Sie die exakte Laborversion und das Paket, das von der Forschung identifiziert wurde, anstatt anzunehmen, dass jedes mit 51.1.35 oder 51.1.36 gekennzeichnete Paket identischen verwundbaren Code enthält.
Dieses Projekt ist bestimmt für:
Testen Sie nur Systeme, für die Sie eine ausdrückliche Autorisierung haben.
Verwenden Sie dieses Projekt nicht ohne Genehmigung gegen Infrastruktur Dritter.
Der Autor fördert keinen unbefugten Zugriff, keine Persistenz, keinen Datendiebstahl und keine Störung von Systemen.
Diese Software wird für Sicherheitsforschung und autorisierte Testzwecke bereitgestellt.
Sie sind dafür verantwortlich, sicherzustellen, dass Ihre Nutzung dieses Projekts mit geltenden Gesetzen, Vorschriften, Verträgen und Autorisierungsanforderungen übereinstimmt.
Der Autor und die Mitwirkenden übernehmen keine Verantwortung für Missbrauch, Schäden, Dienstunterbrechungen, Datenverlust oder andere Konsequenzen, die sich aus unbefugter Nutzung ergeben.
JohenLastGen — JLG NETWORK
Research & Security Tooling
Telegram:
@johenlastgen
Kanal:
@jlgnetworkredirect
MIT-Lizenz
Siehe LICENSE für den vollständigen Lizenztext.
| Option | Beschreibung |
|---|
-u, --url | Testet eine einzelne Ziel-URL |
-l, --list | Datei mit Ziel-URLs |
-e, --exploit | Wählt check, privesc, upload oder both |
-t, --threads | Anzahl gleichzeitiger Worker |
--depth | Maximale Crawler-Linktiefe |
--max-pages | Maximale Anzahl gecrawlter Seiten pro Ziel |
--timeout | HTTP-Anfrage-Timeout in Sekunden |
-o, --output | TSV-Ergebnisausgabe |
--loot | Ausgabe erfolgreicher Validierung |
--no-color | Deaktiviert Terminalfarben |