
このリポジトリには、CVE-2026-45156の概念実証(PoC)エクスプロイトスクリプトが含まれています。
user_oidc ID4me JWT 署名バイパス管理者乗っ取りのための完全自動化された概念実証(PoC)エクスプロイト
すべてのCVEの背後には物語があります。これは、別れのマッシュアップをループで流しながら、寒い冬の夜の午前2時に発見されました。完全な技術的詳細、感情のジェットコースター、そして学んだゼロトラストの教訓をお読みください:
🔗 ブログ記事全文はこちら (リンク先はあなたのブログ記事)
Nextcloudのuser_oidcアプリは、ID4me IDプロバイダから受け取ったJWTトークンを処理する際、暗号署名を検証せずにbase64_decode()を使用してトークンペイロードを処理します。
// Lines 248 - 252
[$header, $payload, $signature] = explode('.', $data['id_token']);
$plainHeaders = json_decode(base64_decode($header), true);
$plainPayload = json_decode(base64_decode($payload), true);
/** TODO: VALIATE SIGNATURE! */
$user = $this->manager->getOrCreate($plainPayload['sub'], ...);
alg: none JWTの偽造nextcloud_id4me_poc.pyは、完全自動化された実戦向けフレームワークです。
alg: none JWTトークンをその場で作成します。pyngrokを介して偽サーバーをターゲットに自動公開します。# 1. 依存関係をインストール
pip install requests pyngrok
# 2. 無料のNgrok認証トークンを追加
ngrok config add-authtoken <YOUR_NGROK_TOKEN>
python nextcloud_id4me_poc.py <TARGET_URL> [--user <USERNAME>] [--port <PORT>]
python nextcloud_id4me_poc.py https://target.lab --user admin
(グリッチしたハッカーバナーが初期化され、続いて自動化されたエクスプロイトフローと最終的な脆弱性レポートが表示されます)
user_oidcアプリケーションがインストールされている脆弱な可能性のあるNextcloudインスタンスを特定するには:
title:"Nextcloud" http.html:"user_oidc"
title:"Nextcloud" http.html:"id4me"
http.title:"Nextcloud" http.html:"/apps/user_oidc/"
注:アプリがインストールされていても、自動的にターゲットが脆弱であるとは限りません。
このPoCは教育および許可されたセキュリティテスト目的のみで提供されています。
このスクリプトは、セキュリティ研究者やバグ報奨金ハンターが、明示的に許可を得たシステムをテストするためのものです。所有していない、または明示的かつ文書化された許可がないシステムに対してこのツールを無断使用することは固く禁じられており、地域、州、連邦の法律に違反する可能性があります。
著者(CyberTechAjju)は一切の責任を負わず、このプログラムの誤用や損害について責任を負いません。
| 引数 | 説明 | デフォルト |
|---|
<TARGET_URL> | 脆弱なNextcloudインスタンス | 必須 |
--user | なりすますユーザー名 | admin |
--port | 偽OIDCサーバーのローカルポート | 9999 |