Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-11391 — WordPress PPOM for WooCommerce プラグイン <= 33.0.15 は SQL インジェクションに対して脆弱です | Kitploit
ツール/GitHubGitHub/r3db34rdh4x/cve-2025-11391
脆弱性分析エクスプロイトウェブアプリケーション悪用論文と研究学習と教育
GitHubr3db34rdh4x/cve-2025-11391

CVE-2025-11391

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

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

人気

すべて見る →

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

すべてのツールを探索

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

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

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):

root@kitploit:~
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コマンドを実行でき、脆弱性を確認したり、データベースから機密情報を1文字ずつ外部に持ち出したりすることが可能になります。

この脆弱性は、プラグイン設定で**「Enable Legacy Price Calculations」**オプションが有効な場合に発動します。この設定により、カート操作中にアプリケーションが脆弱なコードパスを使用するようになるためです。

リポジトリ構成

root@kitploit:~
└── cve-2025-11391/
    ├── exploit.py                  # PythonのProof of Conceptスクリプト。
    └── woocommerce-product-addon/  # 脆弱性のあるバージョンのプラグイン(v33.0.15)。

セットアップと再現手順

1. 要件

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

2. ラボのセットアップ

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

3. 脆弱な設定

  1. WordPressダッシュボードで、PPOM Fields > Settings に移動します。
  2. 「Enable Legacy Price Calculations」 オプションを見つけ、チェックボックスをオンにして有効にします。
  3. 変更を保存します。
  4. PPOM Fields に移動し、新しいフィールドグループを作成します(例:「PoC Group」という名前)。
  5. このグループ内に、テキスト入力フィールドを追加します。タイトル(例:「SQL Injection」)とデータ名(例:sql_injection)を設定します。
  6. Products > Add New に移動して、新しい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. ターミナルからスクリプトを実行します。

    root@kitploit:~
    python exploit.py
    

期待される出力

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

root@kitploit:~
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):

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

免責事項

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

ツールをダウンロード