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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-9848 — CVE-2026-9848 is an Unauthenticated SQL Injection (SQLi) vulnerability affecting the WP Ticket (Customer Support Ticket System & Helpdesk) plugin for WordPress up to and including version 6.0.4. | Kitploit
도구/GitHubGitHub/aj2108/cve-2026-9848
Vulnerability AnalysisWeb Application ExploitationWeb SecurityLearning & Education
GitHubaj2108/cve-2026-9848

CVE-2026-9848

CVE-2026-9848 is an Unauthenticated SQL Injection (SQLi) vulnerability affecting the WP Ticket (Customer Support Ticket System & Helpdesk) plugin for WordPress up to and including version 6.0.4.

저장소 보기
18일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-9848

CVE-2026-9848은 WordPress용 WP Ticket(고객 지원 티켓 시스템 및 헬프데스크) 플러그인 6.0.4 이하 버전에 영향을 주는 인증되지 않은 SQL 삽입(SQLi) 취약점입니다. 이 결함은 플러그인이 WordPress 검색 매개변수 s를 가져와 $wpdb->prepare() 또는 적절한 이스케이프 없이 UNION 하위 쿼리 내부의 SQL LIKE 절에 직접 연결하기 때문에 발생합니다. 결과적으로 원격 공격자는 인증 없이 데이터베이스 쿼리를 조작하고 민감한 정보를 추출할 수 있습니다.

영향받는 소프트웨어

속성값
제품WP Ticket(고객 지원 티켓 시스템 및 헬프데스크)
영향받는 버전≤ 6.0.4
수정된 버전6.0.5
영향받는 구성 요소프런트엔드 검색(s 매개변수)

취약점 유형

  • 분류: SQL 삽입
  • CWE-89: SQL 명령에 사용되는 특수 요소의 부적절한 중화('SQL 삽입')

근본 원인

플러그인은 wp_ticket_com_posts_request()를 통해 WordPress의 posts_request 필터를 연결합니다. 인증되지 않은 프런트엔드 검색 중에 결국 emd_author_search_results()를 호출하며, 이 함수는 검색 매개변수를 읽습니다:

root@kitploit:~
$query->query_vars['s']

이 시점에서 WordPress는 wp_unslash()를 사용하여 매직 쿼트를 이미 제거했습니다. 플러그인은 SQL 문을 안전하게 매개변수화하는 대신 원시 사용자 입력을 UNION 하위 쿼리 내의 SQL LIKE 절에 직접 연결합니다.

개념적으로:

root@kitploit:~

User searches website
        │
        ▼
Search parameter "s" received
        │
        ▼
Plugin concatenates value into SQL query
        │
        ▼
No $wpdb->prepare()
        │
        ▼
Database executes modified query

취약점은 신뢰할 수 없는 입력이 매개변수화된 쿼리 대신 문자열 연결을 통해 SQL에 포함되기 때문에 존재합니다.

취약점의 핵심은 플러그인이 기본 SQL 쿼리를 구성하는 방식입니다:

root@kitploit:~
sql
SELECT * FROM wp_posts 
WHERE post_title LIKE '%[attacker's input]%' 
UNION [attacker's injected SQL]

취약한 SQL 분석

다음은 구성되는 쿼리에 대한 단계별 설명입니다:
  • 시작 지점: 플러그인은 게시물을 검색하기 위한 표준 WordPress 쿼리(예: SELECT * FROM wp_posts WHERE post_title LIKE '%...%')로 시작합니다.
  • 안전하지 않은 연결: 플러그인은 검색 매개변수(s)의 값을 가져와 SQL 쿼리에 직접 붙여넣습니다. 이때 WordPress의 안전한 $wpdb->prepare() 함수나 다른 형태의 이스케이프를 사용하지 않습니다.
  • UNION 서브셀렉트: 플러그인은 기본 쿼리에 UNION 서브셀렉트를 추가합니다. SQL에서 UNION을 사용하면 공격자가 기본 쿼리의 결과를 자신의 악성 쿼리 결과와 결합할 수 있습니다.
  • 최종 쿼리: 데이터베이스로 전송되는 최종 쿼리는 의도된 검색과 공격자가 주입한 SQL 코드가 결합된 형태가 됩니다.

공격 흐름

root@kitploit:~
Attacker
    │
    ▼
Submits a crafted search request
    │
    ▼
WordPress passes the "s" parameter
    │
    ▼
WP Ticket builds SQL query using concatenation
    │
    ▼
Database executes injected SQL
    │
    ▼
Sensitive database information may be disclosed

공격 시나리오

일반 방문자가 웹사이트 검색을 수행합니다:

root@kitploit:~
GET /?s=printer

플러그인은 s 매개변수의 값을 티켓 관련 정보를 검색하는 SQL 쿼리에 통합합니다.

플러그인은 매개변수화된 쿼리를 사용하는 대신 검색 값을 SQL 문에 직접 연결하기 때문에 특수하게 조작된 검색 요청이 의도된 SQL 로직을 변경할 수 있습니다. 인증되지 않은 공격자는 이 동작을 악용하여 WordPress 데이터베이스에서 사용자 이름이나 기타 저장된 데이터와 같은 민감한 정보를 검색할 수 있습니다. 정확한 결과는 애플리케이션 구성과 데이터베이스 권한에 따라 달라집니다. 이제 공격자는 s 매개변수를 조작하여 자신만의 SQL을 주입할 수 있습니다. 예를 들어 다음과 같이 입력할 수 있습니다:

root@kitploit:~
' UNION SELECT user_login, user_pass FROM wp_users -- -

그러면 최종 쿼리는 다음과 같이 됩니다:

root@kitploit:~
SELECT * FROM wp_posts WHERE post_title LIKE '%' UNION SELECT user_login, user_pass FROM wp_users -- -%'

영향

성공적으로 악용될 경우 공격자는 다음을 수행할 수 있습니다:

  • 데이터베이스에서 민감한 정보를 추출합니다.
  • WordPress 사용자를 열거합니다.
  • 애플리케이션 구성 데이터를 읽습니다.
  • 플러그인 전용 데이터베이스 테이블의 정보에 접근합니다.
  • 추가 공격에 유용한 정보를 수집합니다.
이 취약점은 주로 기밀성에 영향을 미칩니다.

심각도

지표점수
CVSS v3.1 (Wordfence CNA)7.5 (높음)

NVD는 아직 자체 CVSS 평가를 게시하지 않았습니다.

개념적 취약 코드

참고: 공급업체는 완전한 취약 구현을 공개하지 않았습니다. 다음은 취약한 코딩 패턴을 보여줍니다.

root@kitploit:~
$search = $query->query_vars['s'];

$sql = "
SELECT *
FROM tickets
WHERE title LIKE '%" . $search . "%'
";

$wpdb->get_results($sql);

취약한 이유

SQL 문은 사용자 제어 입력을 쿼리 문자열에 직접 연결하여 구성됩니다. 입력이 매개변수화되거나 이스케이프되지 않으므로 SQL 문의 구조를 변경할 수 있습니다.

수정된 코드(개념적)

root@kitploit:~
$search = $query->query_vars['s'];

$sql = $wpdb->prepare(
    "SELECT *
     FROM tickets
     WHERE title LIKE %s",
    '%' . $search . '%'
);

$wpdb->get_results($sql);

이 수정이 효과적인 이유

$wpdb->prepare()를 사용하면 SQL 구문과 사용자 입력이 분리됩니다. 데이터베이스는 검색 값을 실행 가능한 SQL이 아닌 데이터로 취급하므로 공격자가 쿼리 구조를 수정할 수 없습니다. WP Ticket 6.0.5의 공식 수정은 취약한 쿼리 구성을 적절히 매개변수화된 구현으로 대체합니다.

도구 다운로드