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-11391 — WordPress PPOM für WooCommerce Plugin <= 33.0.15 ist anfällig für SQL Injection | Kitploit
Tools/GitHubGitHub/moritakaaz/cve-2025-11391
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLernen & BildungDatenbanksicherheit
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

WordPress PPOM für WooCommerce Plugin <= 33.0.15 ist anfällig für SQL Injection

Repository anzeigen
vor 10 MonatenNoch 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

Unauthenticated Blind SQL Injection in PPOM for WooCommerce <= 33.0.15

Dieses Repository enthält einen Proof of Concept (PoC) für eine unauthentifizierte zeitbasierte Blind-SQL-Injection-Schwachstelle im WordPress-Plugin "PPOM for WooCommerce", das Versionen bis einschließlich 33.0.15 betrifft.

Schwachstellendetails

  • Plugin: PPOM for WooCommerce
  • Betroffene Versionen: <= 33.0.15
  • Gepatchte Version: 33.0.16
  • Schwachstellentyp: Unauthentifizierte zeitbasierte Blind-SQL-Injection
  • CVE-ID: CVE-2025-11391 (zur Nachverfolgung zugewiesen)

Beschreibung

Die Schwachstelle besteht, weil das Plugin die vom Benutzer bereitgestellten Eingaben nicht ordnungsgemäß bereinigt, bevor es sie in einer SQL-Abfrage verwendet. Insbesondere verkettet die Funktion get_product_meta() in classes/plugin.class.php den Parameter $meta_id direkt in die SQL-Abfrage, ohne vorbereitete Anweisungen (Prepared Statements) zu verwenden.

Verwundbarer Code (classes/plugin.class.php):

root@kitploit:~
function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

Ein nicht authentifizierter Angreifer kann dies ausnutzen, indem er eine schädliche Nutzlast erstellt und diese in den Parameter ppom[fields][id] injiziert, wenn er ein Produkt in den Warenkorb legt. Dies ermöglicht es dem Angreifer, beliebige SQL-Befehle auszuführen, wie z. B. Zeitverzögerungsfunktionen (SLEEP()), um die Schwachstelle zu bestätigen und möglicherweise vertrauliche Informationen zeichenweise aus der Datenbank zu extrahieren.

Die Schwachstelle wird ausgelöst, wenn die Option "Enable Legacy Price Calculations" in den Einstellungen des Plugins aktiviert ist, da dies die Anwendung zwingt, bei Warenkorbvorgängen den anfälligen Codepfad zu verwenden.

Repository-Struktur

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # Das Python Proof of Concept Skript.
    └── woocommerce-product-addon/  # Verwundbare Version des Plugins (v33.0.15).

Setup & Nachstellungsschritte

1. Anforderungen

  • Eine lokale Webserver-Umgebung (z. B. XAMPP, WAMP, MAMP).
  • Eine frische WordPress-Installation.
  • Das WooCommerce-Plugin installiert und aktiviert.
  • Python 3.x mit installierter requests-Bibliothek (pip install requests).

2. Labor Einrichtung

  1. Starten Sie Ihren lokalen Webserver (Apache, MySQL).
  2. Installieren Sie WordPress in einem Verzeichnis (z. B. /htdocs/wp4hacking/).
  3. Installieren und aktivieren Sie das WooCommerce-Plugin über das WordPress-Dashboard.
  4. Installieren Sie die verwundbare Version von woocommerce-product-addon (v33.0.15), die in diesem Repository bereitgestellt wird, indem Sie die .zip-Datei aus dem Verzeichnis woocommerce-product-addon/ hochladen.
  5. Aktivieren Sie das Plugin "PPOM for WooCommerce".

3. Verwundbare Konfiguration

  1. Gehen Sie im WordPress-Dashboard zu PPOM Fields > Einstellungen.
  2. Suchen Sie die Option "Enable Legacy Price Calculations" und aktivieren Sie das Kontrollkästchen, um sie zu aktivieren.
  3. Speichern Sie die Änderungen.
  4. Gehen Sie zu PPOM Fields und erstellen Sie eine neue Feldgruppe (z. B. nennen Sie sie "PoC Group").
  5. Fügen Sie innerhalb dieser Gruppe ein Texteingabe-Feld hinzu. Geben Sie ihm einen Titel (z. B. "SQL Injection") und einen Datennamen (z. B. sql_injection).
  6. Gehen Sie zu Produkte > Neu hinzufügen, um ein neues WooCommerce-Produkt zu erstellen.
  7. Geben Sie dem Produkt einen Namen (z. B. "Product Testing") und einen Preis.
  8. Suchen Sie auf der Produktbearbeitungsseite den Tab "PPOM Fields" und wählen Sie die von Ihnen erstellte "PoC Group" aus.
  9. Veröffentlichen Sie das Produkt. Notieren Sie die Produkt-ID (z. B. 72).

Exploitation (Ausnutzung)

Das bereitgestellte Skript exploit.py bestätigt die Schwachstelle, indem es einen SLEEP()-Befehl injiziert und die Antwortzeit des Servers misst.

So führen Sie den Exploit aus

  1. Öffnen Sie die Datei exploit.py und konfigurieren Sie die folgenden Variablen:

    • PRODUCT_URL: Die vollständige URL zu der von Ihnen erstellten verwundbaren Produktseite.
    • add_to_cart_data['add-to-cart']: Die ID Ihres verwundbaren Produkts.
  2. Führen Sie das Skript in Ihrem Terminal aus:

    root@kitploit:~
    python exploit.py
    

Erwartete Ausgabe

Wenn das Ziel verwundbar ist, benötigt der Server länger als die SLEEP()-Dauer, um zu antworten, was dazu führt, dass das Skript eine Zeitüberschreitung (Timeout) erhält. Das Skript interpretiert diese Zeitüberschreitung korrekt als erfolgreiche Ausnutzung.

root@kitploit:~
Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

Gegenmaßnahmen

  • Sofort aktualisieren: Aktualisieren Sie das Plugin "PPOM for WooCommerce" auf Version 33.0.16 oder höher.
  • Prepared Statements verwenden: Die gepatchte Version verwendet $wpdb->prepare(), um die Eingabe ordnungsgemäß zu bereinigen und so die SQL-Injection zu verhindern.

Gepatchter Code (classes/plugin.class.php):

root@kitploit:~
$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

Haftungsausschluss

Dieser PoC ist ausschließlich für Bildungs- und Forschungszwecke bestimmt. Verwenden Sie es nicht auf einem System, das Sie nicht besitzen oder für das Sie keine ausdrückliche Erlaubnis zum Testen haben. Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch dieses Skript verursacht werden.

Tool herunterladen