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/r3db34rdh4x/cve-2025-11391
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPapers & ForschungLernen & Bildung
GitHubr3db34rdh4x/cve-2025-11391

CVE-2025-11391

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

Repository anzeigen
1vor 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

Nicht authentifizierte Blind-SQL-Injection in PPOM für WooCommerce <= 33.0.15

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

Details zur Schwachstelle

  • Plugin: PPOM for WooCommerce
  • Betroffene Versionen: <= 33.0.15
  • Gepatchte Version: 33.0.16
  • Schwachstellentyp: Nicht authentifizierte 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. Konkret 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 sie in den Parameter ppom[fields][id] injiziert, wenn ein Produkt zum Warenkorb hinzugefügt wird. Dies ermöglicht es dem Angreifer, beliebige SQL-Befehle auszuführen, wie z. B. Zeitverzögerungsfunktionen (SLEEP()), wodurch er die Schwachstelle bestätigen und möglicherweise vertrauliche Informationen Zeichen für Zeichen aus der Datenbank exfiltrieren kann.

Die Schwachstelle wird ausgelöst, wenn die Option „Enable Legacy Price Calculations" in den Plugin-Einstellungen aktiv ist, da dies die Anwendung dazu zwingt, während Warenkorbvorgängen den verwundbaren 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).

Einrichtung & Reproduktionsschritte

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 der installierten Bibliothek requests (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 in diesem Repository bereitgestellte verwundbare Version von woocommerce-product-addon (v33.0.15), 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 > Settings.
  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 Text Input-Feld hinzu. Geben Sie ihm einen Titel (z. B. „SQL Injection") und einen Datennamen (z. B. sql_injection).
  6. Gehen Sie zu Products > Add New, 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 sich die Produkt-ID (z. B. 72).

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 zur von Ihnen erstellten verwundbaren Produktseite.
    • add_to_cart_data['add-to-cart']: Die ID Ihres verwundbaren Produkts.
  2. Führen Sie das Skript über Ihr 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, wodurch das Skript einen Timeout auslöst. Das Skript interpretiert diesen Timeout 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 dient ausschließlich Bildungs- und Forschungszwecken. Verwenden Sie ihn nicht auf Systemen, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testberechtigung haben. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Skript verursacht werden.

Tool herunterladen