Share
## https://sploitus.com/exploit?id=D25FB0E7-76DE-5297-BED1-4BB8DFB62329
# PoC CVE-2023-0264 — front (OIDC session hijacking)

Front estático que ejecuta el flujo OIDC (authorization code) contra un Keycloak
y expone el hook de secuestro de `session_id` del PoC. Se sirve con nginx en el
puerto **5174** para uso del equipo.

## Levantarlo (en la VPS)

```bash
cd vps/pocCVE0264
docker compose up -d --build
```

Queda en `http://maquina:5174`. Abrí el firewall del proveedor para el
**5174/TCP** (igual que hiciste con el 8443).

La URL de Keycloak se inyecta por entorno (no está hardcodeada en el HTML): editá
`KEYCLOAK_URL/REALM/CLIENT_ID` en `docker-compose.yml` y reiniciá — sin reconstruir.

## ⚠️ Requisitos en Keycloak (SIN esto el login/token fallan)

En el realm **poc**, cliente **client1** (Admin Console → Clients → client1):

1. **Valid redirect URIs** → agregá `http://maquina:5174/*`
   (si no, Keycloak rechaza la redirección de vuelta con "Invalid parameter: redirect_uri").
2. **Web origins** → agregá `http://maquina:5174`
   (si no, el `fetch` al endpoint `/token` falla por **CORS** y el login queda a medias).

## ⚠️ Certificado self-signed

Keycloak usa un cert self-signed en 8443. Cada integrante del equipo, la primera
vez, debe abrir `https://maquina:8443` en su navegador y **aceptar el
certificado** una vez. Si no, las llamadas del front a Keycloak fallan en silencio.

## Cómo se usa el PoC

1. Abrís `http://maquina:5174` → redirige al login de Keycloak.
2. Al volver con el `code`, un `prompt` muestra el `session_id` actual y permite
   **sustituirlo** por el de otra sesión (el núcleo del PoC CVE-2023-0264).
3. Si se completa el intercambio, el token queda ligado a la sesión inyectada.
   El agente de seguridad (carpeta `agente/`) detecta y alerta este patrón.

## Notas
- Servido por **HTTP** (5174); Keycloak por **HTTPS** (8443): el flujo funciona
  (petición http→https permitida). Para HTTPS del front haría falta un cert/reverse-proxy.
- Es una **herramienta de PoC para pruebas autorizadas** sobre tu propio Keycloak.
  Si la exponés públicamente, considerá restringir el acceso (IP, auth básica en el
  proxy) para que no quede un cliente de hijack abierto a cualquiera.
- Cambiar de instancia Keycloak = cambiar `KEYCLOAK_URL` en el compose + `up -d`.
```