
Craft CMS प्री-ऑथेंटिकेशन RCE (CVE-2025-32432) के लिए एक्सप्लॉइट, जो सत्र विषाक्तता को असुरक्षित डिसीरियलाइज़ेशन के साथ जोड़कर कमजोर सर्वरों पर मनमाने कमांड निष्पादित करता है।
Craft CMS में प्रमाणीकरण-पूर्व रिमोट कोड निष्पादन
Mohammed Idrees Banyamer द्वारा खोजा गया एवं विकसित
CVE-2025-32432 Craft CMS के कई संस्करणों को प्रभावित करने वाली एक गंभीर प्रमाणीकरण-पूर्व रिमोट कोड निष्पादन (RCE) भेद्यता है। बिना प्रमाणीकरण के हमलावर, अस्वच्छित सत्र डेटा भंडारण को एक असुरक्षित डिसीरियलाइज़ेशन गैजेट के साथ श्रृंखलित करके, दूरस्थ सर्वर पर मनमाने कमांड निष्पादित कर सकता है।
| शाखा | अधिकतम प्रभावित संस्करण |
|---|---|
| Craft CMS 3.x | ≤ 3.9.14 |
| Craft CMS 4.x | ≤ 4.14.14 |
| Craft CMS 5.x | ≤ 5.6.16 |
⚠️ वर्णित रूटिंग व्यवहार प्रदर्शित करने वाले सभी पुराने संस्करण भी प्रभावित हो सकते हैं।
यह भेद्यता assets/generate-transform एंडपॉइंट में दो विशिष्ट कमजोरियों को श्रृंखलित करने से उत्पन्न होती है:
पुराना रूटिंग व्यवहार बिना किसी स्वच्छता (sanitisation) या फ़िल्टरिंग के कच्चे क्वेरी पैरामीटर सीधे /tmp/sess_<PHPSESSID> पर स्थित PHP सत्र फ़ाइल में लिखता है।
एक Yii डिसीरियलाइज़ेशन गैजेट श्रृंखला (FieldLayoutBehavior → PhpManager) एक हमलावर को एक मनमानी फ़ाइल — इस मामले में, ज़हरीली सत्र फ़ाइल — को शामिल करने के लिए बाध्य करने की अनुमति देती है।
संयुक्त प्रभाव: पूर्ण सर्वर समझौता, डेटा निकासी, पार्श्व संचलन, और भी बहुत कुछ।
requestsurllib3# Install via requirements file
pip install -r requirements.txt
# Or install directly
pip install requests urllib3
python exploit.py -u <target_url> -c "<command>" [options]
| फ़्लैग | विवरण | डिफ़ॉल्ट |
|---|---|---|
-u, --url | आवश्यक। लक्ष्य आधार URL (जैसे https://example.com) | — |
-c, --cmd | आवश्यक। निष्पादित करने हेतु सिस्टम कमांड (जैसे id, whoami) | — |
-a, --asset | ज्ञात मान्य एसेट ID (शोषण को काफी तेज़ करता है) | कोई नहीं |
--scan-max | जब कोई ID प्रदान न की गई हो तो ब्रूट-फ़ोर्स हेतु अधिकतम एसेट ID | 300 |
-t, --timeout | सेकंड में अनुरोध टाइमआउट | 15 |
-v, --verbose | वर्बोज़/डिबग आउटपुट सक्षम करें | बंद |
# Auto-exploit — brute-forces Asset ID automatically
python exploit.py -u https://craft.example.com -c "id"
# With a known Asset ID — more reliable and faster
python exploit.py -u https://craft.example.com -c "cat /etc/passwd" -a 42
# Custom timeout + verbose output
python exploit.py -u https://craft.example.com -c "uname -a" -t 10 -v
Step 1 ──► Session Establishment
Fetch homepage → obtain PHPSESSID cookie
Step 2 ──► Asset ID Resolution
Provided via -a flag OR brute-forced (non-404 detection)
Step 3 ──► Session Poisoning
Malicious GET request → raw PHP injected into /tmp/sess_<PHPSESSID>
Step 4 ──► RCE Trigger
Crafted deserialisation payload → PhpManager includes session file
→ PHP executes → system command runs → output returned
💡 कमांड आउटपुट (पहले 2,000 अक्षर) प्रदर्शित किया जाता है। पूर्ण इंटरैक्शन के लिए, रिवर्स शेल की अनुशंसा की जाती है।
requirements.txt
requests>=2.31.0
urllib3>=2.0
यह टूल केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा मूल्यांकन के लिए है।
सिस्टम स्वामी से स्पष्ट, लिखित अनुमति के बिना इसे किसी भी सिस्टम के विरुद्ध उपयोग न करें।
लेखक इस टूल के किसी भी दुरुपयोग या क्षति के लिए कोई दायित्व नहीं लेता है। इस सॉफ़्टवेयर का उपयोग करके, आप सहमत होते हैं कि आप अपने कार्यों के लिए पूर्ण रूप से ज़िम्मेदार हैं और सभी लागू स्थानीय, राष्ट्रीय और अंतर्राष्ट्रीय कानूनों का पालन करेंगे।
| भूमिका | विवरण |
|---|---|
| 🔍 CVE खोज एवं मूल शोषण | Mohammed Idrees Banyamer |
| 🐙 GitHub | @TheMursalin |
| 🤝 कोड परिशोधन | समुदाय के योगदान का स्वागत है |
⭐ यदि आपको यह उपयोगी लगता है, तो अधिक एक्सप्लॉइट, राइटअप और सुरक्षा टूल के लिए @TheMursalin को फ़ॉलो करने पर विचार करें।
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत जारी किया गया है — पूर्ण विवरण के लिए LICENSE फ़ाइल देखें।