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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-66492 — Joomla拡張機能PhocaCommanderは、ファイルアップロードアクションでパストラバーサルに対して脆弱 - CVSS 6.1 | Kitploit
ツール/GitHubGitHub/toanln-cov/cve-2026-66492
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubtoanln-cov/cve-2026-66492

CVE-2026-66492

Joomla拡張機能PhocaCommanderは、ファイルアップロードアクションでパストラバーサルに対して脆弱 - CVSS 6.1

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

人気

すべて見る →

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

すべてのツールを探索

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

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

ファイルアップロード先のパストラバーサル

PhocaCommander ≤ 6.1.3 — 認証済み管理者がWebルート外にファイルを書き込む

CVE CVSS CWE-22 Affected Researcher


概要

PhocaCommanderのファイルアップロードハンドラーは、攻撃者が制御するbase64エンコードされたfolderパラメータから宛先パスを構築しますが、パス封じ込め(パストラバーサル)の検証は一切行われません。認証済み管理者は、Webサーバープロセスが書き込み可能なWebルート外の任意の場所にファイルをアップロードできます。

ラボで確認済み:folder=Li4vLi4vLi4vdG1w(= ../../../tmp)でアップロードすると、アップロードしたファイルは www-data が所有する /tmp/(/var/www/html/ の外)に配置されます。本番のPHP-FPM環境では、これを連鎖させてリモートコード実行を達成できます。


影響を受けるバージョン

コンポーネント脆弱性ありテスト環境修正版
PhocaCommander1.0.0 – 6.1.3Joomla 5.4.7 + PhocaCommander 6.1.3 (PHP 8.2 / Apache)6.1.4

脆弱性の詳細

**必要な認証:**管理者(セッション + CSRFトークン)

ファイル: administrator/components/com_phocacommander/helpers/fileupload.php — realMultipleUpload()

根本原因

realMultipleUpload() は、folder POSTパラメータをbase64からデコードし、それをそのまま Path::clean() の連結に渡します。連結されたパスは、封じ込めチェックなしにアップロード先として使用されます。

FILEUPLOAD.PHP — 脆弱なコード

$folder = $app->getInput()->get('folder', '', '', 'string');
$folder = base64_decode($folder);         // ← attacker-controlled

$path = JPATH_ROOT;                       // = /var/www/html

if (isset($folder) && $folder != '') {
    $pathFolder = Path::clean($path . '/' . $folder . '/');
    // e.g. Path::clean('/var/www/html/../../../tmp/')
    // = '/tmp/' — outside the webroot, no error thrown
}

// ...
File::upload($file['tmp_name'], $pathFolder . strtolower($file['name']));

Path::clean() はディレクトリ区切り文字を正規化しますが、../ シーケンスを解決したり除去したりしません。解決されたパスは、その後の境界チェックなしに File::upload() に直接渡されます。

アップロード拡張子の許可リスト

このハンドラーは拡張子の許可リスト(画像、ドキュメント、アーカイブ、テキストファイル)を適用し、.php や .htaccess などのサーバー実行可能なタイプをブロックします。ただし、許可リストで許可されるファイルタイプの多く(シェルスクリプト、cronジョブ定義、設定ファイルの断片など)は、OSの機密パスに書き込まれると重大な被害を引き起こす可能性があります。


概念実証

シナリオ1 — folderパラメータのトラバーサルによる /tmp への任意ファイル書き込み

1. Joomla管理者パネルにログインしてCSRFトークンを取得する

管理者ログインページから認証します。JoomlaのCSRFトークンは、任意の管理ページから取得できます。隠しフォームフィールドとして表示されるか、ページソースから抽出できます。

管理者パネルからCSRFトークンを抽出するGETリクエスト

2. folderパラメータにトラバーサルを指定してファイルをアップロードする

次のURLに対してmultipart POSTリクエストを送信します:POST /administrator/index.php?option=com_phocacommander&task=phocacommanderupload.multipleupload。fileフィールドにファイルの内容を、folderフィールドにbase64エンコードされたトラバーサルパス Li4vLi4vLi4vdG1w (= ../../../tmp) を指定します。サーバーはHTTP 200と {"jsonrpc":"2.0","result":"OK","code":200,"message":"Success: ","details":"Files uploaded"} で応答します。

リクエスト / レスポンス

トラバーサルfolderパラメータを含むPOSTアップロードリクエストと200 OKレスポンス

3. Webルート外の /tmp にファイルが書き込まれたことを確認する

ファイルが /tmp/upload_test.txt に書き込まれたことを確認します。場所は /var/www/html/ の外で、所有者は www-data です。

www-dataが所有するupload_test.txtを表示するターミナルのls -la /tmp


影響

  1. Webルート外への任意ファイル書き込み — www-data が書き込み可能な任意のパス(OSスケジューラ、SSHデーモン、その他のサービスが使用するパスを含む)に、攻撃者が選択した内容を書き込むことができます。
  2. PHP-FPM環境での潜在的なRCE — PHPコードを含む.txtファイルを.user.ini(auto_prepend_file)と組み合わせてWebアクセス可能なディレクトリにアップロードすると、そのディレクトリへの次のリクエストでPHPが実行されます。

参照

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-66492
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-66492
  • ベンダーリポジトリ: https://github.com/PhocaDesign/PhocaCommander
ツールをダウンロード