
استغلال مبني على بايثون لـ CVE-2024-4577، وهي ثغرة تنفيذ التعليمات البرمجية عن بُعد في PHP-CGI على منصات Windows مع تجاوز تحويل الأحرف Best-Fit.
PHP هي اختصار لـ Hypertext Preprocessor، وهي لغة برمجة نصية مفتوحة المصدر تُستخدم على نطاق واسع، وتناسب بشكل خاص تطوير الويب والتضمين في HTML، كما أنها سهلة الاستخدام. CGI، ويعني واجهة البوابة العامة، هو الآلية التي يستخدمها Apache عند مواجهة نصوص PHP لتقديم برنامج PHP إلى تطبيق CGI (php-cgi.exe) لتفسيره، ثم تُعاد النتيجة إلى Apache، ثم إلى المستخدم الذي طلبها.
عند تصميم PHP، تم تجاهل ميزة تحويل الأحرف "Best-Fit" في ويندوز. عندما يعمل PHP-CGI على منصة ويندوز ويستخدم لغات معينة (مثل الصينية المبسطة 936، الصينية التقليدية 950، اليابانية 932، إلخ)، يمكن للمهاجم إنشاء سلسلة استعلام خاصة. بعد فك تشفير URL، قد تحتوي هذه السلاسل على أحرف غير ASCII محددة يتم توجيهها في نظام ويندوز إلى علامة الواصلة، مما يؤدي إلى تجاوز تصحيحات CVE-2012-1823 و CVE-2012-2311، وإنشاء معاملات سطر الأوامر في وضع CGI، لتنفيذ أي كود PHP.
PHP إصدار ويندوز 8.3.0 <= الإصدار المتأثر < 8.3.8 PHP إصدار ويندوز 8.2.0 <= الإصدار المتأثر < 8.2.20 PHP إصدار ويندوز 8.1.0 <= الإصدار المتأثر < 8.1.29 PHP إصدار ويندوز الإصدار المتأثر == 8.0.x PHP إصدار ويندوز الإصدار المتأثر == 7.x PHP إصدار ويندوز الإصدار المتأثر == 5.x XAMPP إصدار ويندوز 8.2.0 <= الإصدار المتأثر <= 8.2.12 XAMPP إصدار ويندوز 8.1.0 <= الإصدار المتأثر <= 8.1.25 XAMPP إصدار ويندوز الإصدار المتأثر == 8.0.x XAMPP إصدار ويندوز الإصدار المتأثر == 7.x XAMPP إصدار ويندوز الإصدار المتأثر == 5.x
python CVE-2024-4577 --target http://192.168.1.1/index.php -c "<?php system('calc')?>"

قم بتعليق التكوين التالي في الملف C:\xampp\apache\conf\extra\httpd-xampp.conf ثم أعد تشغيل الخدمة
#
# PHP-CGI setup
#
# <FilesMatch "\.php$">
# SetHandler application/x-httpd-php-cgi
# </FilesMatch>
# <IfModule actions_module>
# Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
# </IfModule>
قم بتعليق السطر التالي في الملف C:/xampp/apache/conf/extra/httpd-xampp.conf
# ScriptAlias /php-cgi/ "C:/xampp/php/"