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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-11391 — WordPress PPOM for WooCommerce Plugin <= 33.0.15 は SQLインジェクションに対して脆弱です。 | Kitploit
ツール/GitHubGitHub/moritakaaz/cve-2025-11391
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト学習と教育データベースセキュリティ
GitHubmoritakaaz/cve-2025-11391

CVE-2025-11391

WordPress PPOM for WooCommerce Plugin <= 33.0.15 は SQLインジェクションに対して脆弱です。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

PPOM for WooCommerce <= 33.0.15 における未認証のブラインドSQLインジェクション

このリポジトリには、WordPressプラグイン「PPOM for WooCommerce」のバージョン 33.0.15 までに影響する、未認証の時間ベースのブラインドSQLインジェクション脆弱性の Proof of Concept(PoC)が含まれています。

脆弱性の詳細

  • プラグイン: PPOM for WooCommerce
  • 影響を受けるバージョン: <= 33.0.15
  • パッチ適用バージョン: 33.0.16
  • 脆弱性の種類: 未認証の時間ベースのブラインドSQLインジェクション
  • CVE ID: CVE-2025-11391(追跡目的で割り当てられました)

説明

この脆弱性は、プラグインがSQLクエリで使用する前にユーザー入力を適切にサニタイズしていないために存在します。具体的には、classes/plugin.class.php 内の get_product_meta() 関数が、プリペアドステートメントを使用せずに $meta_id パラメータをSQLクエリに直接連結しています。

脆弱なコード(classes/plugin.class.php):

function get_product_meta( $meta_id ) {
    // ...
    global $wpdb;
    $qry = 'SELECT * FROM ' . $wpdb->prefix . PPOM_TABLE_META . " WHERE productmeta_id = $meta_id";
    $res = $wpdb->get_row( $qry );
    return $res;
}

認証されていない攻撃者は、悪意のあるペイロードを作成し、商品をカートに追加する際に ppom[fields][id] パラメータに注入することで、これを悪用できます。これにより、攻撃者は時間遅延関数(SLEEP())などの任意のSQLコマンドを実行でき、脆弱性を確認したり、データベースから機密情報を文字ごとに外部に持ち出す可能性があります。

この脆弱性は、プラグインの設定で "レガシー価格計算を有効にする" オプションが有効な場合に発動します。これにより、カート操作中にアプリケーションが脆弱なコードパスを使用するようになるためです。

リポジトリ構造

└── cve-2025-11391/
    ├── exploit.py                  # The Python Proof of Concept script.
    └── woocommerce-product-addon/  # Vulnerable version of the plugin (v33.0.15).

セットアップと再現手順

1. 要件

  • ローカルWebサーバー環境(例:XAMPP、WAMP、MAMP)。
  • 新しいWordPressインストール。
  • WooCommerceプラグインがインストールされ、有効化されていること。
  • Python 3.xと、インストールされたrequestsライブラリ(pip install requests)。

2. ラボのセットアップ

  1. ローカルWebサーバー(Apache、MySQL)を起動します。
  2. ディレクトリ(例:/htdocs/wp4hacking/)にWordPressをインストールします。
  3. WordPressダッシュボードからWooCommerceプラグインをインストールして有効化します。
  4. このリポジトリで提供されている脆弱なバージョンの woocommerce-product-addon(v33.0.15)を、woocommerce-product-addon/ ディレクトリから .zip ファイルをアップロードしてインストールします。
  5. 「PPOM for WooCommerce」プラグインを有効化します。

3. 脆弱な設定

  1. WordPressダッシュボードで、PPOM Fields > 設定 に移動します。
  2. "レガシー価格計算を有効にする" オプションを見つけ、チェックボックスをオンにして有効にします。
  3. 変更を保存します。
  4. PPOM Fields に移動し、新しいフィールドグループを作成します(例: "PoC Group")。
  5. このグループ内に、テキスト入力 フィールドを追加します。タイトル(例: "SQL Injection")とデータ名(例: sql_injection)を付けます。
  6. 商品 > 新規追加 に移動して、新しいWooCommerce商品を作成します。
  7. 商品に名前(例: "Product Testing")と価格を設定します。
  8. 商品編集ページで、「PPOM Fields」タブを見つけ、作成した「PoC Group」を選択します。
  9. 商品を公開します。商品ID(例: 72)をメモします。

悪用

提供されている exploit.py スクリプトは、SLEEP() コマンドを注入してサーバーの応答時間を測定することで、脆弱性を確認します。

エクスプロイトの実行方法

  1. exploit.py ファイルを開き、以下の変数を設定します:

    • PRODUCT_URL: 作成した脆弱な商品ページの完全なURL。
    • add_to_cart_data['add-to-cart']: 脆弱な商品のID。
  2. ターミナルからスクリプトを実行します:

    python exploit.py
    

期待される出力

ターゲットが脆弱な場合、サーバーが SLEEP() の時間よりも長く応答に時間がかかり、スクリプトがタイムアウトします。スクリプトはこのタイムアウトを正常な悪用として正しく解釈します。

Attempting SQL Injection PoC (One-Step Method)...
Make sure 'Enable Legacy Price Calculations' is active.
[*] Sending SQL Injection payload...
   Request timed out after 10.00 seconds.

[+] SUCCESS! 'Read timed out' occurred because the SLEEP(7) payload was executed.
   The site is vulnerable to Time-Based Blind SQL Injection.

緩和策

  • すぐに更新: 「PPOM for WooCommerce」プラグインをバージョン 33.0.16 以降にアップグレードします。
  • プリペアドステートメントを使用: パッチ適用済みバージョンは、$wpdb->prepare() を使用して入力を適切にサニタイズし、SQLインジェクションを防ぎます。

パッチ適用済みコード(classes/plugin.class.php):

$table = $wpdb->prefix . PPOM_TABLE_META;
$res   = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table WHERE productmeta_id = %d", $meta_id ) );

免責事項

このPoCは教育および研究目的のみを意図しています。所有していないシステムや、テストする明示的な許可がないシステムでは使用しないでください。作者は、このスクリプトによって引き起こされる誤用や損害について一切の責任を負いません。

ツールをダウンロード