Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-22352 — CVE-2025-22352의 PoC | Kitploit
도구/GitHubGitHub/dottak/cve-2025-22352
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubdottak/cve-2025-22352

CVE-2025-22352

CVE-2025-22352의 PoC

저장소 보기
211년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

1️⃣ 구성 요소 유형

WordPress 플러그인

2️⃣ 구성 요소 세부 정보

Component name ELEX WooCommerce Advanced Bulk Edit Products, Prices & Attributes

Vulnerable version <= 1.4.8

Component slug elex-bulk-edit-products-prices-attributes-for-woocommerce-basic

Component link https://wordpress.org/plugins/elex-bulk-edit-products-prices-attributes-for-woocommerce-basic/

3️⃣ OWASP 2017: TOP 10

Vulnerability class A3: Injection

Vulnerability type SQL Injection (Blind SQL Injection)

4️⃣ 사전 요구 사항

Shop Manager OR Administrator

5️⃣ 취약점 세부 정보

👉 간단한 설명

ELEX WooCommerce Advanced Bulk Edit Products, Prices & Attributes 플러그인은 제품 일괄 편집을 지원하는 플러그인입니다.

이 플러그인에서 제품을 일괄 편집할 때 필터링을 통해 대상을 선택하며, 이 과정에서 제품 필터링 요청 시 전송되는 일부 데이터가 SQL 쿼리에 직접 삽입되면서 SQL Injection 취약점이 발생합니다.

단, SQL 쿼리 결과를 직접 확인할 수 없으며, 쿼리 결과의 참/거짓 여부를 판단하여 데이터를 추출하는 Blind SQL Injection 방식으로 취약점이 존재합니다.

👉 재현 방법 (PoC)

  1. 대시보드의 WooCommerce 메뉴에서 'Bulk Edit Products'('/wp-admin/admin.php?page=eh-bulk-edit-product-attr')로 이동합니다.
  2. 제품 필터링 항목 중 Product Regular Price의 select 태그에서 '=='를 선택합니다.
  3. 텍스트 입력 폼에 '1 OR 1=1'을 입력합니다(작은따옴표(') 제외).
  4. 하단의 'Preview Filtered Products' 버튼을 클릭하면 모든 제품이 표시됩니다.
  5. 반면, 동일한 입력 폼에 '1 OR 1=2'를 입력하면 제품이 전혀 표시되지 않습니다.
  6. 이를 통해 SQL 쿼리 조건의 참/거짓 여부에 따라 응답 데이터가 달라짐을 확인할 수 있습니다.

👉 추가 정보 (선택 사항)

[취약점의 근본 원인]

위 PoC 설명에서 요청한 함수('Preview Filtered Products')를 실행하면 다음과 같은 패킷이 생성됩니다.

image

해당 패킷이 요청되면 /wp-content/plugins/elex-bulk-edit-products-prices-attributes-for-woocommerce-basic/includes/elex-ajax-apifunctions.php 파일의 elex_bep_filter_products 함수가 호출됩니다.

요청 데이터에서 SQL Injection 페이로드가 포함된 desired_price 값은 다음 순서를 통해 SQL 쿼리로 실행됩니다.

  1. SQL Injection 페이로드가 포함된 desired_price 값이 직접 쿼리 조건 절에 전달되어 $price_query 변수에 할당됩니다.

    product_title_text, range도 쿼리에 직접 전달되지만, PoC에서 desired_price에 SQL Injection 페이로드를 전달했으므로 여기서는 desired_price만 설명합니다.

    root@kitploit:~
    // elex-ajax-apifunctions.php at line 1280
    $price_query = " AND meta_key='_regular_price' AND meta_value {$filter_range} {$data_to_filter['desired_price']} ";
    

    image

  2. 이후 변수 $price_query는 변수 $sql에 추가되고(1365행, #1), 변수 $sql과 문자열 AND 및 변수 $product_type_condition이 변수 를 초기화합니다(1379행, #2).

image

따라서 SQL Injection 페이로드가 포함된 요청 매개변수 desired_price는 $wpdb->prepare( '%1s', $main_query ) 구문의 $main_query에 포함됩니다. 이때 %1s 형식 지정자는 $main_query 값을 그대로 전달하므로, 이스케이프 없이 SQL Injection 페이로드가 쿼리에 삽입되어 SQL Injection 취약점이 발생합니다.

[PoC 코드 구현 및 실행]

⚠️ PoC 코드는 제품 관리자 계정을 사용하여 Blind SQL Injection 취약점을 악용해 데이터베이스 이름을 얻기 위해 구현되었습니다.

  1. 편집기에서 PoC 코드를 열고 WordPress 사이트 주소와 제품 관리자 계정 자격 증명을 입력합니다.

image

  1. 다음으로 아래 명령을 입력하여 PoC 코드를 실행합니다.

    필수 모듈 requests

    root@kitploit:~
    python poc.py
    

    image

6️⃣ 익스플로잇 데모

video

7️⃣ 참고 자료

  • https://nvd.nist.gov/vuln/detail/CVE-2025-22352
도구 다운로드
$main_query

변수 $sql은 elex-ajax-apifunctions.php의 1257행에서 초기화됩니다.

image

  • 마지막으로 변수 $main_query는 아래와 같이 prepare 함수에 인수로 전달되어 데이터베이스 쿼리를 실행합니다.