
CVE-2023-0264(Keycloak OIDC セッションハイジャック)の概念実証エクスプロイト。session_id 置換用のフロントエンドと、攻撃を検知するエージェントを備えています。
Keycloakに対してOIDC(authorization code)フローを実行し、PoCのsession_idハイジャックフックを公開する静的フロントエンド。チーム利用のためnginxでポート5174に配信される。
cd vps/pocCVE0264
docker compose up -d --build
http://maquina:5174 で利用可能。プロバイダーのファイアウォールで5174/TCPを開放する(8443と同じように)。
KeycloakのURLは環境変数で注入される(HTMLにはハードコードされていない)。docker-compose.ymlのKEYCLOAK_URL/REALM/CLIENT_IDを編集して再起動するだけでよい(再ビルドは不要)。
レルムpoc、クライアントclient1(Admin Console → Clients → client1)で:
http://maquina:5174/* を追加する
(追加しないと、Keycloakが "Invalid parameter: redirect_uri" でリダイレクトを拒否する)。http://maquina:5174 を追加する
(追加しないと、/tokenエンドポイントへのfetchがCORSで失敗し、ログインが途中で止まる)。Keycloakは8443で自己署名証明書を使用する。チームの各メンバーは初回、ブラウザでhttps://maquina:8443を開き、証明書を一度受け入れる必要がある。そうしないと、フロントからKeycloakへの呼び出しが静かに失敗する。
http://maquina:5174 を開く → Keycloakのログインにリダイレクトされる。codeを持って戻ると、promptが現在のsession_idを表示し、別のセッションのものに置き換えることができる(PoC CVE-2023-0264の中核)。agente/フォルダ)がこのパターンを検出して警告する。KEYCLOAK_URLを変更 + up -d。