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
Outils/GitHubGitHub/r3db34rdh4x/cve-2025-11391
Analyse des VulnérabilitésExploitationExploitation d'Applications WebArticles et RechercheApprentissage et Éducation
GitHubr3db34rdh4x/cve-2025-11391

CVE-2025-11391

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

Voir le dépôt
1il 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 pour 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
  • Identifiant 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 « Activer les calculs de prix hérités » 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                  # Le script Python de preuve de concept.
    └── woocommerce-product-addon/  # Version vulnérable du plugin (v33.0.15).

Configuration et étapes 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 Champs PPOM > Réglages.
  2. Recherchez l'option « Activer les calculs de prix hérités » et cochez la case pour l'activer.
  3. Enregistrez les modifications.
  4. Allez dans Champs PPOM et créez un nouveau groupe de champs (par exemple, nommez-le « Groupe PoC »).
  5. Dans ce groupe, ajoutez un champ Saisie de texte. Donnez-lui un titre (par exemple, « Injection SQL ») et un nom de données (par exemple, sql_injection).
  6. Allez dans Produits > Ajouter pour créer un nouveau produit WooCommerce.
  7. Donnez un nom au produit (par exemple, « Produit de test ») et un prix.
  8. Sur la page de modification du produit, recherchez l'onglet « Champs PPOM » et sélectionnez le « Groupe PoC » que vous avez créé.
  9. Publiez le produit. Notez l'identifiant 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 du produit vulnérable que vous avez créé.
    • add_to_cart_data['add-to-cart'] : l'identifiant de votre produit vulnérable.
  2. Exécutez le script depuis votre terminal :

    root@kitploit:~
    python exploit.py
    

Sortie attendue

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 un délai d'attente dépassé du script. Le script interprète correctement ce délai d'attente 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.

Atténuation

  • Mettez à jour immédiatement : Mettez à niveau le plugin « PPOM for WooCommerce » vers la version 33.0.16 ou une version 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

Cette PoC est destinée 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 l'autorisation explicite 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