Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-22710 — PoC of CVE-2025-22710 | Kitploit
Outils/GitHubGitHub/dottak/cve-2025-22710
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubdottak/cve-2025-22710

CVE-2025-22710

PoC of CVE-2025-22710

Voir le dépôt
2il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-22710

1️⃣ Type de composant

Extension WordPress

2️⃣ Détails du composant

Nom du composant WooCommerce Advanced Bulk Edit Products, Orders, Coupons, Any WordPress Post Type – Smart Manager

Version vulnérable <= 8.50.0

Slug du composant smart-manager-for-wp-e-commerce

Lien du composant https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/

3️⃣ OWASP 2017 : TOP 10

Classe de vulnérabilité A3 : Injection

Type de vulnérabilité Injection SQL

4️⃣ Prérequis

Administrateur

5️⃣ Détails de la vulnérabilité

👉 Description courte

L'extension WooCommerce Advanced Bulk Edit Products, Orders, Coupons, Any WordPress Post Type – Smart Manager (ci-après Smart Manager) est une extension qui permet la modification en masse et l'affichage de tous les types de publications dans WordPress.

Dans l'extension Smart Manager version 8.50.0 et antérieures, lors de l'utilisation de la fonction de recherche avancée pour afficher les publications, une vulnérabilité d'injection SQL se produit car les valeurs de filtrage sont passées aux requêtes de base de données sans échappement.

Cependant, bien que les résultats directs des attaques par injection SQL ne soient pas visibles à l'écran, une injection SQL aveugle est possible grâce aux différences dans les valeurs de réponse basées sur des conditions vrai/faux.

👉 Comment reproduire (PoC)

⚠️ Au moins une publication doit exister pour observer la différence dans les valeurs de réponse basées sur des conditions vrai/faux.

  1. Préparez un site WordPress avec l'extension Smart Manager installée, connectez-vous avec un compte administrateur et accédez au tableau de bord de l'extension Smart Manager (/wp-admin/admin.php?page=smart-manager).

image

  1. Cliquez sur la case à cocher « Recherche avancée » à droite de la barre de recherche pour ouvrir la fenêtre de recherche avancée.

image

  1. Dans le filtrage de la recherche avancée, sélectionnez « Titre de la publication » et « est », puis saisissez la charge utile ' OR 1=1 )) # dans le champ de texte. Ensuite, cliquez sur le bouton de recherche en haut.

image

  1. En vérifiant les résultats de recherche, comme la condition de la charge utile est toujours vraie (OR 1=1), toutes les publications sont récupérées.

image

  1. D'autre part, si vous sélectionnez « Titre de la publication » et « est » dans le filtrage de la recherche avancée et saisissez ' OR 1=2 )) # dans le champ de texte, aucune publication ne sera récupérée car la condition est toujours fausse (OR 1=2).

image

image

👉 Informations supplémentaires (optionnel)

[Cause de la vulnérabilité]

Lors de l'exécution de la fonction « Recherche avancée » décrite dans la description du PoC ci-dessus, le paquet suivant est généré et les valeurs de filtrage (Titre de la publication, est, ' OR 1=1 )) #) saisies dans la recherche avancée sont introduites dans les données de requête advanced_search_query.

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

image

Lorsque ce paquet est demandé, la fonction get_data_model dans le fichier /wp-content/plugins/smart-manager-for-wp-e-commerce/classes/class-smart-manager-base.php est appelée et effectue des requêtes de base de données dans l'ordre suivant.

  1. Si les données de requête advanced_search_query existent, elle appelle la fonction process_search_cond. À ce moment, les données de requête advanced_search_query sont transmises à la valeur avec la clé search_query dans l'argument de paire clé-valeur.

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

    image

  2. La fonction appelée process_search_cond parcourt la valeur avec la clé search_query, initialise la valeur de filtrage Titre de la publication (post_title) dans la variable $search_col, et initialise la valeur de filtrage ' OR 1=1 )) # contenant la charge utile d'injection SQL dans la variable .

Dans la fonction de recherche avancée, l'entrée utilisateur (' OR 1=1 )) #) est directement incluse dans la requête de base de données sans échappement, ce qui entraîne une vulnérabilité d'injection SQL. Cette vulnérabilité permet aux attaquants d'exécuter des requêtes SQL arbitraires, ce qui peut conduire à des risques de sécurité graves tels que la fuite ou la manipulation d'informations sensibles de la base de données.

[Implémentation et exécution du code PoC]

⚠️ L'implémentation du code PoC interroge le nom de la base de données en exploitant la vulnérabilité d'injection SQL.

  1. Ouvrez le code PoC dans un éditeur et saisissez l'adresse du site WordPress et les identifiants administrateur.

    image

  2. Ensuite, saisissez la commande suivante pour exécuter le code PoC.

    Module requis requests

    root@kitploit:~
    python poc.py
    

    image

6️⃣ Démonstration de l'exploit

video

7️⃣ Références

  • https://nvd.nist.gov/vuln/detail/CVE-2025-22710
Télécharger l’outil
$search_value

image

  • Les variables $search_col et $search_value sont transmises respectivement aux clés search_col (=post_title) et search_value (=' OR 1=1 )) #) du tableau $search_params. Ensuite, cette variable $search_params est transmise comme valeur avec la clé search_params à la fonction create_flat_table_search_query.

    image

  • Ensuite, la fonction create_flat_table_search_query définit la clause WHERE de la requête SQL, et à ce stade, le search_value (=' OR 1=1 )) #) de la clé search_params passé comme argument est inclus dans la clause WHERE sans aucun échappement.

    image

  • Ensuite, la valeur de retour de la fonction create_flat_table_search_query (contenant la charge utile d'injection SQL) est transmise comme argument à la fonction process_flat_table_search_query.

    image

  • La fonction process_flat_table_search_query construit une requête de base de données en utilisant l'argument reçu, en initialisant les variables $select, $from et $where. Ici, on peut voir que la charge utile d'injection SQL est transmise directement à la variable $where sans aucune validation.

    image

  • Les variables $select, $from, $where sont directement affectées à la variable $query_posts_search, et cette variable est finalement transmise comme argument à la fonction qui exécute la requête de base de données.

    image