Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-29000-PoC — CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) JwtAuthenticator обход аутентификации PoC | Kitploit
Инструменты/GitHubGitHub/dua2z3rr/cve-2026-29000-poc
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеАутентификацияОбучение и Образование
GitHubdua2z3rr/cve-2026-29000-poc

CVE-2026-29000-PoC

CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) JwtAuthenticator обход аутентификации PoC

Репозиторий
11 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-29000 — PoC обхода аутентификации JwtAuthenticator в pac4j-jwt

Доказательство концепции для CVE-2026-29000, обхода аутентификации в компоненте pac4j-jwt JwtAuthenticator (CVSS 10.0, Критический).

Скрипт создает токен, который выдает себя за любого пользователя с любой ролью — без знания ни одного секрета — при условии, что цель раскрывает свой RSA открытый ключ.

[!WARNING] Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности. Он был написан для решения машины Hack The Box "Principal", и настройки по умолчанию (iss, role, kid) подобраны под эту машину. Используйте его только против систем, которыми вы владеете или на тестирование которых у вас есть явное разрешение.


Уязвимость

Версии pac4j-jwt < 4.5.9, < 5.7.9 и < 6.3.3 содержат логическую ошибку в JwtAuthenticator при обработке зашифрованных JWT (JWE).

Когда JwtAuthenticator расшифровывает JWE, он пытается разобрать внутренний токен как SignedJWT. Если внутренний токен является неподписанным PlainJWT (alg: none), объект SignedJWT возвращается null, и из-за логической ошибки путь проверки подписи полностью пропускается. Затем аутентификатор создает профиль пользователя непосредственно из непроверенных утверждений.

Другими словами, внешнее шифрование JWE — которое требует только открытый ключ сервера — ошибочно принимается за доказательство подлинности, поэтому любой злоумышленник, который может прочитать открытый ключ, может создавать полностью доверенные токены.

Цепочка атаки

  1. Получить открытый ключ RSA цели из её JWKS-эндпоинта (например, /api/auth/jwks).
  2. Создать неподписанный PlainJWT (alg: none) с выбранными злоумышленником утверждениями (sub, role, iss, …).
  3. Завернуть этот PlainJWT в JWE-конверт, зашифрованный открытым ключом цели.
  4. Отправить полученный компактный JWE как Bearer-токен. Уязвимый JwtAuthenticator расшифровывает его, пропускает проверку подписи и доверяет поддельным утверждениям.

Требования

  • Python 3.8+
  • Зависимости из requirements.txt:
root@kitploit:~
pip install -r requirements.txt

(requests, jwcrypto, cryptography)


Использование

root@kitploit:~
python3 exploit.py -u <username> [options]

Параметры

Вы должны указать либо --target (для получения JWKS по сети), либо --jwks-file (для локальной загрузки).

Примеры

Создать admin-токен, получив открытый ключ от цели, и вывести его в stdout:

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin

Создать токен, затем автоматически проверить его на защищенном эндпоинте:

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin \
    --verify-endpoint /api/settings -v

Использовать локально сохраненный JWKS и сохранить токен в файл:

root@kitploit:~
python3 exploit.py --jwks-file jwks.json -u admin -o token.jwe

Устранение уязвимости

Обновите org.pac4j:pac4j-jwt до исправленной версии:

  • 4.x линия → 4.5.9 или новее
  • 5.x линия → 5.7.9 или новее
  • 6.x линия → 6.3.3 или новее

Лицензия

Выпущено под лицензией MIT.

Скачать инструмент
ФлагОписаниеПо умолчанию
-t, --targetБазовый URL цели (например, http://host:8080)—
--jwks-urlПуть к эндпоинту JWKS/api/auth/jwks
--jwks-fileЗагрузить JWKS из локального файла вместо получения от --target—
-u, --usernameЗначение утверждения sub (обязательно)—
--roleЗначение утверждения roleROLE_ADMIN
--issЗначение утверждения issprincipal-platform
--expСрок действия токена в секундах3600
--verify-endpointЗащищенный эндпоинт для проверки поддельного токена (например, /api/settings)—
-k, --insecureОтключить проверку сертификата TLSoff
-o, --outputЗаписать поддельный JWE в файл вместо stdoutstdout
-v, --verboseВывести полезную нагрузку поддельного JWT в stderroff