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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-29000-pac4j-jwt-auth-bypass — Доказательство концепции (PoC) для уязвимости обхода аутентификации, затрагивающей приложения, использующие pac4j-jwt с JWE (JSON Web Encryption). | Kitploit
Инструменты/GitHubGitHub/ptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass
Анализ уязвимостейЭксплуатацияВеб-безопасностьCTFТестирование на ПроникновениеАутентификация
GitHubptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass

CVE-2026-29000-pac4j-jwt-auth-bypass

Доказательство концепции (PoC) для уязвимости обхода аутентификации, затрагивающей приложения, использующие pac4j-jwt с JWE (JSON Web Encryption).

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

Популярное

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

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

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

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

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

HTB Principal — Разбор CVE-2026-29000

Дисклеймер: Этот эксплойт был разработан исключительно для вышедшей из ротации машины HackTheBox "Principal". Только в образовательных целях. Не используйте против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Информация о машине

ПолеДетали
НазваниеPrincipal
ПлатформаHackTheBox
Сложность—
СтатусВышла из ротации

Уязвимость — CVE-2026-29000

Затронутая библиотека: pac4j-jwt < 4.5.9 / 5.7.9 / 6.3.3
Критичность: Критическая
Тип: Обход аутентификации

Краткое описание

Логическая ошибка в JwtAuthenticator позволяет атакующему обойти аутентификацию, обернув неподписанный PlainJWT (alg=none) внутри JWE (зашифрованного JWT).

Когда сервер расшифровывает JWE, он пытается разобрать внутренний токен как SignedJWT. Поскольку внутренний токен является PlainJWT, объект SignedJWT равен null, и проверка подписи полностью пропускается. Затем сервер строит профиль пользователя из непроверенных утверждений — что позволяет полностью выдать себя за любого пользователя, включая администраторов.

Требования для атаки

  • Открытый RSA-ключ сервера (часто доступен через JWKS-эндпоинт)
  • Знание внутренних имён утверждений (например, роли, формат subject)

Схема эксплойта

root@kitploit:~
Создание вредоносных утверждений (sub=admin, role=ROLE_ADMIN)
        ↓
Создание неподписанного PlainJWT (alg=none)
        ↓
Обёртка PlainJWT внутри JWE с использованием открытого RSA-ключа сервера
        ↓
Отправка JWE-токена на сервер
        ↓
Сервер расшифровывает JWE → находит PlainJWT → пропускает проверку подписи → предоставляет доступ

Эксплойт

См. exploit.py


Исправление

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

  • 4.5.9 или новее
  • 5.7.9 или новее
  • 6.3.3 или новее

Или явно отклоняйте внутренние токены PlainJWT после расшифровки JWE:

root@kitploit:~
if (jwt instanceof PlainJWT) {
    throw new CredentialsException("PlainJWT not allowed inside JWE");
}

⚙️ Схема атаки

  1. Получите открытый ключ из:
root@kitploit:~

/api/auth/jwks

  1. Создайте вредоносный JWT:
  • alg: none
  • Внедрите роль администратора
  1. Оберните внутри JWE с помощью открытого ключа

  2. Отправьте как:

root@kitploit:~

Authorization: Bearer <token>

  1. Получите несанкционированный доступ

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

Установка зависимостей

root@kitploit:~
pip install jwcrypto requests

Запуск эксплойта

root@kitploit:~
python3 poc.py \
--jwks-url http://target/api/auth/jwks \
--target http://target/api/dashboard

📤 Пример вывода

root@kitploit:~
[+] Создан токен:
eyJhbGciOiJSU0EtT0FFUC0yNTYi...

[+] Инъекция в браузер:
sessionStorage.setItem("auth_token", "eyJhbGciOiJSU0EtT0FFUC0yNTYi...")

[+] Статус: 200
{"user":{"username":"admin","role":"ROLE_ADMIN"}}

🌐 Эксплуатация через браузер

Откройте DevTools → Консоль:

root@kitploit:~
sessionStorage.setItem("auth_token", "<PASTE_TOKEN_HERE>")

Затем перейдите на:

root@kitploit:~
/dashboard

🔥 Воздействие

  • Полный обход аутентификации
  • Повышение привилегий до администратора
  • Несанкционированный доступ к API
  • Возможное горизонтальное перемещение

🛡️ Смягчение последствий

  • Всегда проверяйте подписи JWT (JWS) после расшифровки
  • Отклоняйте токены с alg: none
  • Применяйте строгие политики проверки токенов
  • Не полагайтесь только на шифрование для доверия

👤 Автор

  • Doomsknight

Ссылки

  • Консультация по безопасности pac4j
  • HackTheBox
Скачать инструмент