
CVE-2024-4577 एक सुरक्षा भेद्यता है जो निम्नलिखित संस्करणों में PHP सर्वरों को प्रभावित करती है:
यह भेद्यता एक रिमोट कोड निष्पादन (RCE) दोष है जो Windows सर्वरों पर PHP CGI (कॉमन गेटवे इंटरफ़ेस) का उपयोग करने पर उत्पन्न होती है। समस्या तब उत्पन्न होती है जब Windows कुछ भाषा सेटिंग्स में "Best Fit" वर्ण मैपिंग के उपयोग के कारण कुछ वर्णों की गलत व्याख्या करता है। इस स्थिति में, PHP CGI मॉड्यूल दुर्भावनापूर्ण वर्णों को PHP विकल्पों के रूप में व्याख्यायित करता है, जिससे हमलावर सर्वर पर दुर्भावनापूर्ण कमांड निष्पादित कर सकते हैं।
प्रारंभिक हमला वेक्टर:
भेद्यता का शोषण करने के लिए, असुरक्षित साइट के URL में निम्नलिखित स्ट्रिंग जोड़ें:
?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input
इस अनुरोध को इंटरसेप्ट करने और Repeater पर भेजने के लिए Burp Suite का उपयोग करें।
अनुरोध विधि बदलें: इंटरसेप्ट किए गए अनुरोध को POST विधि में बदलें और एक सरल PHP कोड निष्पादित करें, उदाहरण के लिए:
<?php phpinfo();
यदि भेद्यता मौजूद है, तो आउटपुट PHP संस्करण से संबंधित जानकारी प्रदर्शित करेगा।
हमलावर के उद्देश्यों के आधार पर विभिन्न विधियाँ लागू की जा सकती हैं। मेरी पसंदीदा विधि Burp Suite का उपयोग करके Windows स्टार्टअप निर्देशिका में एक निष्पादन को परिभाषित करना था। मैंने reverseshell.ps1 स्क्रिप्ट को एक निष्पादन योग्य (exe) में बदल दिया और उसे वहाँ रख दिया।
इसी तरह, मैंने सिस्टम पर ransomware.ps1 फ़ाइल अपलोड की और दस्तावेज़ों को सफलतापूर्वक बाहर निकाल लिया, केवल उनके एन्क्रिप्टेड संस्करणों को पीछे छोड़ दिया।
हमला शुरू करने से पहले, 4688 लॉग को सक्रिय करना आवश्यक है। अपनी Windows मशीन पर 4688 सुरक्षा लॉग का विश्लेषण करने पर, मैंने पाया कि हमला XAMPP के अंतर्गत Apache से उत्पन्न हुआ था। जब मैंने Access.log फ़ाइलों की जाँच की, तो मुझे एक असामान्य अनुरोध मिला जिसने 200 स्थिति कोड लौटाया, जिससे मुझे अपने ब्राउज़र में इस URL की खोज करने के लिए प्रेरित किया। मैंने भेद्यता की पहचान की और सावधानी बरती, जैसे PHP संस्करण को अपडेट करना या PHP CGI सुविधा को अक्षम करना।
चूंकि मेरे द्वारा बनाया गया रैंसमवेयर obfuscated नहीं था, इसलिए मेरा कोड PowerShell लॉग में दिखाई देता है। यह दिखाता है कि मैंने डेटा को कैसे एन्क्रिप्ट किया। अपना डेटा पुनर्प्राप्त करने के लिए, मैं encoded.ps1 फ़ाइल चलाता हूँ।
यह सिमुलेशन CVE-2024-4577 से जुड़े संभावित जोखिमों को उजागर करता है और PHP इंस्टॉलेशन को सुरक्षित करने के महत्व पर जोर देता है। PHP को अपडेट रखना और CGI सेटिंग्स के गलत कॉन्फ़िगरेशन को रोकना ऐसी भेद्यताओं को प्रभावी ढंग से कम कर सकता है।