cd ~/blog

~/vulns/http-parameter-pollution.md

HTTP Parameter Pollution

webautor: Jordy Pérez Osorio aviso legal
webHPPinput-validation

~2 min de lectura


1. Descripción técnica

HTTP Parameter Pollution consiste en enviar varias ocurrencias del mismo parámetro para provocar una interpretación inesperada. Frameworks, proxies, filtros y código de aplicación pueden conservar el primer valor, el último, todos los valores o una concatenación. Cuando dos componentes toman decisiones diferentes sobre la misma petición, un valor puede superar la validación y otro alcanzar la operación sensible.

Duplicar un parámetro no es automáticamente una vulnerabilidad. El problema aparece cuando la ambigüedad cambia una decisión de seguridad, como autorización, filtrado, redirección o selección de un recurso interno.

// renderizando diagrama…

2. Impacto

Puede permitir bypass de validaciones, modificación de lógica, acceso a recursos no previstos o encadenamientos con vulnerabilidades como SSRF y XSS. El impacto depende enteramente del consumidor final del valor ambiguo.

3. Condiciones necesarias

  1. La aplicación acepta parámetros repetidos.
  2. Dos etapas o componentes interpretan esas ocurrencias de forma diferente, o el código no maneja explícitamente la colección.
  3. La discrepancia afecta una decisión sensible.
  4. El atacante controla el orden y los valores enviados.

4. Validación y detección

Para cada parámetro se comparan al menos tres peticiones: valor original, valor alterado y ambas ocurrencias juntas. Se registra qué valor valida cada capa y cuál llega a la operación final. También deben probarse query strings, formularios y JSON cuando el parser admite claves duplicadas.

La mitigación y la detección requieren observar la petición antes y después de proxies o gateways, porque una capa puede normalizarla. Los logs que sólo conservan un valor pueden ocultar la discrepancia.

5. Explotación documentada en los writeups

5.1. 122-jan

/redirect recibe dos parámetros url idénticos dirigidos a /credz. La aplicación procesa las ocurrencias de forma inconsistente y termina solicitando el recurso desde su propio contexto. El resultado encadena HTTP Parameter Pollution con SSRF para superar la restricción de acceso interno.

6. Mitigación

  • Rechazar parámetros duplicados cuando la operación espera un único valor.
  • Normalizar la petición una sola vez antes de validar y ejecutar.
  • Asegurar que proxy, framework y aplicación compartan la misma política de parsing.
  • Validar el valor final que consumirá la operación sensible.
  • Registrar todas las ocurrencias o la representación normalizada usada por el backend.

7. Clasificación

8. Referencias y conexiones

// relacionados