1. Descripción técnica
Cookie Tampering aparece cuando una aplicación confía en un valor de estado enviado por el cliente sin comprobar su integridad ni contrastarlo con estado del servidor. El navegador permite modificar las cookies; por tanto, autorización, puntuaciones, precios o roles no deben aceptarse como verdaderos sólo porque regresan con una solicitud.
A cookie visible no implica una vulnerabilidad. El fallo se confirma cuando modificar su contenido cambia una decisión sensible sin una validación independiente.
2. Impacto y condiciones
El impacto depende de la decisión asociada: puede alterar lógica de negocio, acceder a funciones, suplantar atributos o evadir controles. Se necesita una cookie controlable y una ruta del servidor que consuma su valor como autoridad.
3. Validación y detección
Se compara una solicitud legítima con otra que cambia sólo la cookie y se observa la decisión del servidor. Es importante distinguir integridad de confidencialidad: cifrar puede ocultar un valor, mientras una firma o MAC permite detectar modificaciones. En logs, valores fuera de rango y transiciones imposibles pueden indicar manipulación.
4. Explotación documentada en los writeups
4.1 150-banner
/api/submit utilizaba directamente user_score como puntuación inicial. Al enviar user_score=1000, el servidor sumó la respuesta correcta y liberó la flag sin verificar el valor contra una sesión firmada o un registro interno.
5. Mitigación
- Mantener el estado sensible en el servidor y entregar al cliente sólo un identificador opaco.
- Si el cliente debe transportar estado, aplicar autenticidad criptográfica y validar expiración, contexto y formato antes de usarlo.
- Recalcular en el servidor las decisiones de autorización y lógica de negocio.
- Registrar y rechazar valores imposibles o relaciones incoherentes entre cookies.
6. Clasificación
| Campo | Valor |
|---|---|
| Superficie | Aplicación web |
| Entrada controlada | Cookie enviada por el cliente |
| Debilidad | Falta de validación de integridad o estado |
| Impacto | Alteración de lógica de negocio o control de acceso |