
このPython PoCは、Camaleon CMS 2.8.0 < 2.8.2(2.9.0でも動作)のパストラバーサル脆弱性であるCVE-2024-46987を悪用します。認証済みユーザーがMediaControllerを介してサーバーの機密ファイルを読み取ることを可能にします。認可されたセキュリティ監査および教育目的の研究のみを対象としています。
このリポジトリには、Camaleon CMS 上で任意のファイル読み取り(LFI / パストラバーサル)を可能にする CVE-2024-46987 用の Proof of Concept(PoC)スクリプトが含まれています。
Camaleon CMS バージョン 2.8.0 以上 2.8.2 未満(奇妙なことに 2.9.0 でも動作)に、パストラバーサル脆弱性が確認されました。この脆弱性は MediaController の download_private_file メソッドに存在します。
この脆弱性により、認証済みユーザーが file パラメータを操作してサーバー上の任意のファイルをダウンロードできるようになります。アプリケーションが昇格された特権で実行されている場合、または CMS を実行しているシステムユーザーが機密ファイルにアクセスできる場合、これにより重大な情報漏えい(設定ファイル、ソースコードなど)が発生する可能性があります。
技術詳細:
requests次のコマンドで依存関係をインストールできます:
pip install requests
このスクリプトは、対象 CMS 上の有効なユーザーアカウントを使用して認証し、悪用に必要な CSRF トークンを取得する必要があります。
python3 CVE-2024-46987.py -u <URL> -l <USERNAME> -p <PASSWORD> <FILE_TO_READ>
-u, --url: 対象サイトのベース URL(例: http://example.com)。-l, --user: 認証用のユーザー名。-p, --password: 認証用のパスワード。--path:(オプション)脆弱性のあるエンドポイントのパス。デフォルト: admin/media/download_private_file。-v, --verbose: 接続手順を表示する冗長モードを有効にします。file: サーバー上で読み取るファイルのパス(例: /etc/passwd)。/etc/passwd ファイルを読み取る:
python3 CVE-2024-46987.py -u http://target-cms.local -l admin -p password123 /etc/passwd
冗長モードを使用する:
python3 CVE-2024-46987.py -u http://target-cms.local -l user -p pass -v /etc/hosts
このコードは教育およびセキュリティ研究目的のみで提供されています。事前の許可なく対象に対してこのスクリプトを使用することは違法です。作者は不正使用について一切の責任を負いません。
ペネトレーションテストを実施する前に、必ず明示的な許可を得てください。