
Joomla Helix3 における任意ファイル書き込みを悪用し、PHP ウェブシェルのアップロードとリモートコード実行を可能にする CVE-2026-49049 の Python スキャナーおよび概念実証。
このリポジトリには、Joomla Helix3コンポーネントの脆弱性に対するPythonベースのスキャナーと概念実証が含まれています。このバグは任意ファイル書き込みの問題であり、攻撃者がWebからアクセス可能な場所にPHPペイロードを書き込める場合、リモートコード実行(RCE)につながる可能性があります。
脆弱な動作は、リクエストパラメータが適切な検証なしにファイルパスやファイル内容を制御するために使用される場合に発生します。Helix3 AJAXインターフェースの場合、エンドポイントはサーバーのファイルシステムにファイルを書き込むために使用される可能性のあるデータを受け入れます。アプリケーションが宛先パスを制限せず、内容を検証しない場合、攻撃者はWebサーバーが実行する場所に悪意のあるPHPスクリプトを作成できます。
言い換えれば、この脆弱性は単に「ファイルが書き込める」というものではなく、危険な連鎖です:
これは典型的な任意ファイル書き込みからWebシェルへのシナリオです。
攻撃者がサイトルートやその他の実行可能ディレクトリにPHPファイルを書き込めるようになると、以下のことが可能になります:
単純なファイル書き込みの欠陥を完全なサーバー侵害に変えることができるため、影響は深刻です。
根本的な問題は通常、次のようなロジックに似ています:
$file = $_POST['layoutName'];
$content = $_POST['content'];
file_put_contents($file, $content);
$fileの値が攻撃者に制御され、パスが制限されていない場合、アプリケーションは実行可能なパスにPHPコードを書き込む可能性があります。悪意のあるスクリプトはその後ブラウザから利用可能になり、Webサーバーによって実行される可能性があります。
このプロジェクトには、以下を試みるマルチスレッドのPythonツールが含まれています:
脆弱なターゲットをresults.txtに記録し、生のPHP出力をraw_result.txtに保存します。
修正では、信頼できないファイル書き込みを排除し、厳格な検証を実施する必要があります。推奨される修復手順を以下に示します。
JoomlaとHelix3コンポーネント/プラグインを最新の安定版にアップグレードしてください。セキュリティ更新は、任意の書き込み操作を可能にする脆弱なエンドポイントを削除または制限することがよくあります。
Helix3 AJAX機能が不要な場合は、完全に無効化してください。安全でないエンドポイントへのアクセスを削除することで、攻撃対象領域が大幅に減少します。
任意のファイルシステムパスを許可しないでください。アプリケーションは、公開されておらずPHPとして実行されない、小さな固定ディレクトリ内でのみ書き込みを許可する必要があります。
検証では以下を拒否する必要があります:
../などのパストラバーサルシーケンスファイルを書き込む前に:
ファイルを書き込むエンドポイントの使用は、信頼された管理者のみに許可されるべきです。書き込みリクエストを受け入れる前に、適切な認証と権限チェックを要求してください。
厳格な検証なしに、攻撃者制御の生の内容を実行可能ファイルに書き込まないでください。さらに、サーバーのハードニングには以下を含める必要があります:
requestsパッケージ対象URLを含むファイルを作成します。例えばtargets.txt:
http://example.com
https://joomla-site.local
http://127.0.0.1
次に実行します:
python3 cve-2026-49049.py targets.txt
スクリプトは以下を作成します:
results.txt — 検出された脆弱なURLraw_result.txt — テスト中に観測された生のPHPペイロードこのプロジェクトは、教育目的、正当なセキュリティ研究、および許可された脆弱性評価を目的としています。明示的な許可なくシステムに対して使用してはなりません。悪用は固く禁じられています。
このリポジトリの内容は、研究者と管理者が実際のセキュリティ問題を理解、特定、および修復するのを支援するために提供されています。責任を持って、適切な許可がある制御された環境でのみ使用してください。