Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2019-19576 — هذا استغلال لتجاوز التصفية يؤدي إلى رفع ملفات عشوائي وتنفيذ تعليمات برمجية عن بُعد في class.upload.php <= 2.0.3 | Kitploit
أدوات/GitHubGitHub/jra89/cve-2019-19576
توليد الحمولةتحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubjra89/cve-2019-19576

CVE-2019-19576

هذا استغلال لتجاوز التصفية يؤدي إلى رفع ملفات عشوائي وتنفيذ تعليمات برمجية عن بُعد في class.upload.php <= 2.0.3

عرض المستودع
123منذ 6 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

class.upload.php <= 2.0.3 رفع ملف تعسفي

  • المؤلف - Jinny Ramsmark
  • البائع المتأثر - Verot.net
  • المنتج المتأثر - class.upload.php <= 2.0.3
  • تم اختباره على Ubuntu 19.10 مثبت حديثًا مع PHP7.3 و Apache/2.4.38
  • تحديدًا، تبين أن Debian/Ubuntu معرضة للخطر لأنها تضيف امتدادات php و phar و phtml إلى معالجات PHP المتاحة. في هذه الحالة، لم يقم class.upload.php بإدراج امتداد phar في القائمة السوداء.

وصف

هذا استغلال لتجاوز التصفية يؤدي إلى رفع ملف تعسفي وتنفيذ تعليمات برمجية عن بُعد. يقوم سكريبت class.upload.php بتصفية "الملفات والمحتوى الخطير" وإعادة تسميتها إلى امتداد ملف txt. كما يقوم بأنواع مختلفة من التحويل على الصورة المرفوعة، مما قد يؤدي عادةً إلى تدمير أي حمولة محقونة، حتى لو تم تجاوز مرشح امتداد الملف.

مرشح امتداد الملف هو قائمة سوداء، لذا في أي وقت يتم فيه تقديم امتداد جديد (في هذه الحالة phar)، أو تم تفويت أي امتداد، يمكن رفع ملف PHP. يجب أن يكون المحتوى صورة صالحة مع ذلك وسيظل يمر عبر دوال imagecreatefromjpeg وما شابهها. لهذا الغرض، كتبت سكريبت inject.php الذي سيجرب قوة غاشمة عبر صور مختلفة حتى يجد صورة حيث لن يتم تدمير الحمولة بواسطة العملية التي يقوم بها class.upload.php. هذا يعطينا فعليًا رفع ملف تعسفي وتنفيذ تعليمات برمجية خفي جدًا لأنه لا يزال صورة صالحة وسيتم عرضها كصورة على الصفحات التي يتم رفعها فيها.

الجدول الزمني (الموعد النهائي الافتراضي 90 يومًا)

  • 2019-12-03 - تم الإبلاغ إلى المطور و K2
  • 2019-12-03 - ردت K2
  • 2019-12-04 - رد Verot بإصلاح
  • 2019-12-04 - ردت K2 بإصلاح معد من جانبها
  • 2019-12-04 - أصدر Verot الإصلاح المذكور (v2.0.4)
  • 2019-12-05 - استجاب الطرفان واتفقا على نشر المعلومات

الملفات المضمنة في هذا الإثبات المفاهيمي (PoC)

  • composer.json
  • upload.php
  • inject.php

الاستخدام

سكريبت upload.php هو الكود المثال من مستودع verot.net على GitHub. رأيت أنه من الأفضل عرض هذه الثغرة باستخدام الكود المثال الخاص بهم.

  • قم بتشغيل 'php inject.php' في الطرفية، سيولد صورة نموذجية بحمولة بسيطة في الملف.
  • عند انتهاء السكريبت، سينتج ملفًا باسم 'image.jpg.phar'.
  • تصفح إلى ملف upload.php وارفع image.jpg.phar، سيمر وسيكون لديك الآن قوقعة (shell).

مثال

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Imagejpeg injector 1.7=-
[+] Fetching image (100 X 100) from http://lorempixel.com/100/100/
[+] Jumping to end byte
[+] Searching for valid injection point
[!] Temp solution, if you get a 'recoverable parse error' here, it means it probably failed
[+] It seems like it worked!
[+] Result file: image.jpg.phar
root@kitploit:~
user@ayu:/var/www/html# curl -v -o - http://localhost/images/image_resized.phar?c=uname%20-a | grep -aPo "(Linux.*GNU)"
Linux ayu 5.0.0-36-generic #39-Ubuntu SMP Tue Nov 12 09:46:06 UTC 2019 x86_64 x86_64 x86_64 GNU

الحل المقترح

  • لا تستخدم قائمة سوداء لامتدادات الملفات.
  • استخدم قائمة بيضاء للامتدادات المسموح بها افتراضيًا بدلاً من ذلك.
  • أو ببساطة لا تستخدم أي امتدادات على الملفات المرفوعة، وقم بتخزين الاسم الأصلي في مكان آخر.

المرجع

  • https://github.com/verot/class.upload.php/blob/2.0.3/src/class.upload.php#L3068

مثال هجوم في إضافة Joomla K2

رفع ملف تعسفي يؤدي إلى تنفيذ تعليمات برمجية عن بُعد في JoomlaWorks K2 <= 2.10.1 بسبب نسخة غير مصححة من class.upload.php

الموقع الإلكتروني

  • https://getk2.org/

صور نموذجية

مستخدم عادي يرفع الصورة المولدة بواسطة inject.php، والتي تحتوي على حمولة بسيطة. ستتجاوز مرشح الامتداد في class.upload.php ولن يتم تدميرها بواسطة معالجة الصورة في المكتبة. ستظهر كصورة عادية، وهو أمر أكثر خفاءً.



سيتم رفع الملف ويمكن الوصول إليه كباب خلفي وتنفيذ الأوامر.

تنزيل الأداة