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-22710 — PoC für CVE-2025-22710 | Kitploit
Tools/GitHubGitHub/dottak/cve-2025-22710
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubdottak/cve-2025-22710

CVE-2025-22710

PoC für CVE-2025-22710

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

CVE-2025-22710

1️⃣ Komponententyp

WordPress-Plugin

2️⃣ Komponentendetails

Komponentenname WooCommerce Advanced Bulk Edit Products, Orders, Coupons, Any WordPress Post Type – Smart Manager

Betroffene Version <= 8.50.0

Komponenten-Slug smart-manager-for-wp-e-commerce

Komponenten-Link https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/

3️⃣ OWASP 2017: TOP 10

Schwachstellenklasse A3: Injection

Schwachstellentyp SQL Injection

4️⃣ Voraussetzung

Administrator

5️⃣ Details zur Schwachstelle

👉 Kurzbeschreibung

Das Plugin WooCommerce Advanced Bulk Edit Products, Orders, Coupons, Any WordPress Post Type – Smart Manager (im Folgenden Smart Manager) ist ein Plugin, das die Massenbearbeitung und -anzeige aller Beitragstypen in WordPress ermöglicht.

Im Smart-Manager-Plugin Version 8.50.0 und niedriger tritt bei Verwendung der erweiterten Suchfunktion zum Anzeigen von Beiträgen eine SQL-Injection-Schwachstelle auf, da Filterwerte ohne Escape-Verarbeitung an Datenbankabfragen übergeben werden.

Die direkten Ergebnisse von SQL-Injection-Angriffen sind zwar nicht auf dem Bildschirm sichtbar, jedoch ist eine Blind-SQL-Injection durch Unterschiede in den Antwortwerten basierend auf True/False-Bedingungen möglich.

👉 Reproduktionsschritte (PoC)

⚠️ Es muss mindestens ein Beitrag vorhanden sein, um den Unterschied in den Antwortwerten basierend auf True/False-Bedingungen beobachten zu können.

  1. Bereiten Sie eine WordPress-Website mit installiertem Smart-Manager-Plugin vor, melden Sie sich mit einem Administratorkonto an und navigieren Sie zur Dashboard-Seite des Smart-Manager-Plugins (/wp-admin/admin.php?page=smart-manager).

image

  1. Klicken Sie auf das Kontrollkästchen 'Erweiterte Suche' auf der rechten Seite der Suchleiste, um das Fenster der erweiterten Suche zu öffnen.

image

  1. Wählen Sie in der erweiterten Suchfilterung 'Beitragstitel' und 'ist', und geben Sie dann den Payload ' OR 1=1 )) # in das Texteingabeformular ein. Klicken Sie anschließend oben auf die Suchschaltfläche.

image

  1. Bei der Überprüfung der Suchergebnisse werden alle Beiträge abgerufen, da die Bedingung des Payloads immer wahr ist (OR 1=1).

image

  1. Wenn Sie hingegen in der erweiterten Suchfilterung 'Beitragstitel' und 'ist' auswählen und ' OR 1=2 )) # in das Texteingabeformular eingeben, werden keine Beiträge abgerufen, da die Bedingung immer falsch ist (OR 1=2).

image

image

👉 Zusätzliche Informationen (optional)

[Ursache der Schwachstelle]

Bei der Ausführung der oben in der PoC-Beschreibung angeforderten Funktion 'Erweiterte Suche' wird das folgende Paket erzeugt, und die in der erweiterten Suche eingegebenen Filterwerte (Post Title, is, ' OR 1=1 )) #) werden in die Anforderungsdaten advanced_search_query eingegeben.

root@kitploit:~
advanced_search_query=[{"condition":"OR","rules":[{"condition":"AND","rules":[{"type":"wp_posts.post_title","operator":"is","value":"' OR 1=1 )) #"}]}]}]

image

Wenn dieses Paket angefordert wird, wird die Funktion get_data_model in der Datei /wp-content/plugins/smart-manager-for-wp-e-commerce/classes/class-smart-manager-base.php aufgerufen und führt Datenbankabfragen in der folgenden Reihenfolge aus.

  1. Wenn die Anforderungsdaten advanced_search_query vorhanden sind, wird die Funktion process_search_cond aufgerufen. Dabei werden die Anforderungsdaten advanced_search_query an den Wert mit dem Schlüssel search_query im Schlüssel-Wert-Paar-Argument übergeben.

    root@kitploit:~
    search_query=[{"condition":"OR","rules":[{"condition":"AND","rules":[{"type":"wp_posts.post_title","operator":"is","value":"' OR 1=1 )) #"}]}]}]
    

    image

  2. Die aufgerufene Funktion process_search_cond iteriert über den Wert mit dem Schlüssel search_query, initialisiert den Filterwert Beitragstitel (post_tile) in der Variablen $search_col und initialisiert den Filterwert ' OR 1=1 )) #, der den SQL-Injection-Payload enthält, in der Variablen .

In der erweiterten Suchfunktion wird die Benutzereingabe (' OR 1=1 )) #) ohne Escape-Verarbeitung direkt in die Datenbankabfrage aufgenommen, was zu einer SQL-Injection-Schwachstelle führt. Diese Schwachstelle ermöglicht es Angreifern, beliebige SQL-Abfragen auszuführen, was zu ernsthaften Sicherheitsrisiken wie dem Offenlegen oder Manipulieren vertraulicher Informationen aus der Datenbank führen kann.

[Implementierung und Ausführung des PoC-Codes]

⚠️ Die PoC-Code-Implementierung fragt den Datenbanknamen ab, indem sie die SQL-Injection-Schwachstelle ausnutzt.

  1. Öffnen Sie den PoC-Code in einem Editor und geben Sie die WordPress-Website-Adresse und die Administrator-Anmeldedaten ein.

    image

  2. Geben Sie dann den folgenden Befehl ein, um den PoC-Code auszuführen.

    Erforderliches Modulrequests

    root@kitploit:~
    python poc.py
    

    image

6️⃣ Exploit-Demo

video

7️⃣ Referenzen

  • https://nvd.nist.gov/vuln/detail/CVE-2025-22710
Tool herunterladen
$search_value

image

  • Die Variablen $search_col und $search_value werden an die Schlüssel search_col (=post_title) bzw. search_value (=' OR 1=1 )) #) des Arrays $search_params übergeben. Anschließend wird diese Variable $search_params als Wert mit dem Schlüssel search_params an die Funktion create_flat_table_search_query übergeben.

    image

  • Anschließend definiert die Funktion create_flat_table_search_query die WHERE-Klausel der SQL-Abfrage, und an dieser Stelle wird der search_value (=' OR 1=1 )) #) des als Argument übergebenen Schlüssels search_params ohne Escape-Verarbeitung in die WHERE-Klausel aufgenommen.

    image

  • Dann wird der Rückgabewert der Funktion create_flat_table_search_query (der den SQL-Injection-Payload enthält) als Argument an die Funktion process_flat_table_search_query übergeben.

    image

  • Die Funktion process_flat_table_search_query erstellt mithilfe des empfangenen Arguments eine Datenbankabfrage und initialisiert die Variablen $select, $from und $where. Hier ist zu sehen, dass der SQL-Injection-Payload ohne Validierung direkt an die Variable $where übergeben wird.

    image

  • Die Variablen $select, $from, $where werden direkt der Variablen $query_posts_search zugewiesen, und diese Variable wird letztendlich als Argument an die Funktion übergeben, die die Datenbankabfrage ausführt.

    image