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-11391 — Le plugin WordPress PPOM for WooCommerce <= 33.0.15 est vulnérable à l'injection SQL. | Kitploit
Outils/GitHubGitHub/moritakaaz/cve-2025-11391
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionApprentissage et ÉducationSécurité des Bases de Données
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

Le plugin WordPress PPOM for WooCommerce <= 33.0.15 est vulnérable à l'injection SQL.

Voir le dépôt
il y a 10 moisPas 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

Injection SQL aveugle non authentifiée dans PPOM for WooCommerce <= 33.0.15

Ce dépôt contient une preuve de concept (PoC) pour une vulnérabilité d'injection SQL aveugle basée sur le temps, non authentifiée, dans le plugin WordPress « PPOM for WooCommerce », affectant les versions jusqu'à la 33.0.15 incluse.

Détails de la vulnérabilité

  • Plugin : PPOM for WooCommerce
  • Versions affectées : <= 33.0.15
  • Version corrigée : 33.0.16
  • Type de vulnérabilité : Injection SQL aveugle basée sur le temps non authentifiée
  • ID CVE : CVE-2025-11391 (Attribué à des fins de suivi)

Description

La vulnérabilité existe parce que le plugin ne parvient pas à assainir correctement les entrées fournies par l'utilisateur avant de les utiliser dans une requête SQL. Plus précisément, la fonction get_product_meta() dans classes/plugin.class.php concatène directement le paramètre $meta_id dans la requête SQL sans utiliser de requêtes préparées.

Code vulnérable (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;
}

Un attaquant non authentifié peut exploiter cette faille en créant une charge utile malveillante et en l'injectant dans le paramètre ppom[fields][id] lors de l'ajout d'un produit au panier. Cela permet à l'attaquant d'exécuter des commandes SQL arbitraires, telles que des fonctions de temporisation (SLEEP()), lui permettant de confirmer la vulnérabilité et potentiellement d'exfiltrer des informations sensibles de la base de données caractère par caractère.

La vulnérabilité est déclenchée lorsque l'option « Enable Legacy Price Calculations » est active dans les paramètres du plugin, car cela force l'application à utiliser le chemin de code vulnérable lors des opérations de panier.

Structure du dépôt

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # The Python Proof of Concept script.
    └── woocommerce-product-addon/  # Vulnerable version of the plugin (v33.0.15).

Étapes d'installation et de reproduction

1. Prérequis

  • Un environnement de serveur web local (par exemple, XAMPP, WAMP, MAMP).
  • Une installation WordPress fraîche.
  • Le plugin WooCommerce installé et activé.
  • Python 3.x avec la bibliothèque requests installée (pip install requests).

2. Configuration du laboratoire

  1. Démarrez votre serveur web local (Apache, MySQL).
  2. Installez WordPress dans un répertoire (par exemple, /htdocs/wp4hacking/).
  3. Installez et activez le plugin WooCommerce depuis le tableau de bord WordPress.
  4. Installez la version vulnérable de woocommerce-product-addon (v33.0.15) fournie dans ce dépôt en téléversant le fichier .zip depuis le répertoire woocommerce-product-addon/.
  5. Activez le plugin « PPOM for WooCommerce ».

3. Configuration vulnérable

  1. Dans le tableau de bord WordPress, allez dans PPOM Fields > Settings.
  2. Trouvez l'option « Enable Legacy Price Calculations » et cochez la case pour l'activer.
  3. Enregistrez les modifications.
  4. Allez dans PPOM Fields et créez un nouveau groupe de champs (par exemple, nommez-le « PoC Group »).
  5. Dans ce groupe, ajoutez un champ Text Input. Donnez-lui un titre (par exemple, « SQL Injection ») et un nom de données (par exemple, sql_injection).
  6. Allez dans Products > Add New pour créer un nouveau produit WooCommerce.
  7. Donnez un nom au produit (par exemple, « Product Testing ») et un prix.
  8. Sur la page de modification du produit, trouvez l'onglet « PPOM Fields » et sélectionnez le « PoC Group » que vous avez créé.
  9. Publiez le produit. Notez l'ID du produit (par exemple, 72).

Exploitation

Le script exploit.py fourni confirme la vulnérabilité en injectant une commande SLEEP() et en mesurant le temps de réponse du serveur.

Comment exécuter l'exploit

  1. Ouvrez le fichier exploit.py et configurez les variables suivantes :

    • PRODUCT_URL : l'URL complète de la page produit vulnérable que vous avez créée.
    • add_to_cart_data['add-to-cart'] : l'ID de votre produit vulnérable.
  2. Exécutez le script depuis votre terminal :

    root@kitploit:~
    python exploit.py
    

Résultat attendu

Si la cible est vulnérable, le serveur mettra plus de temps que la durée du SLEEP() pour répondre, ce qui entraînera une expiration du délai (timeout) du script. Le script interprète correctement cette expiration comme une exploitation réussie.

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.

Mesures d'atténuation

  • Mettez à jour immédiatement : Mettez à niveau le plugin « PPOM for WooCommerce » vers la version 33.0.16 ou ultérieure.
  • Utilisez des requêtes préparées : La version corrigée utilise $wpdb->prepare() pour assainir correctement l'entrée, empêchant ainsi l'injection SQL.

Code corrigé (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 ) );

Avertissement

Ce PoC est destiné uniquement à des fins éducatives et de recherche. Ne l'utilisez pas sur un système que vous ne possédez pas ou pour lequel vous n'avez pas explicitement l'autorisation de tester. L'auteur n'est pas responsable de toute utilisation abusive ou de tout dommage causé par ce script.

Télécharger l’outil