# HTTP Parameter Pollution

Es una vulnerabilidad que es provocada cuando se realiza el envío de múltiples parámetros de HTTP con el mismo nombre, un atacante puede eludir la validación de entradas, provocar errores de aplicación o modificar valores de variables internas. Como la contaminación de parámetros HTTP afecta un componente básico de todas las tecnologías web, existen ataques del lado del servidor y del cliente.

Se pueden introducir vulnerabilidades de contaminación de parámetros HTTP (HPP) si varios parámetros HTTP tienen el mismo nombre. Este problema puede hacer que una aplicación interprete los valores incorrectamente. Un atacante puede aprovechar las vulnerabilidades de HPP para eludir la validación de entradas, provocar errores de aplicación o modificar valores de variables internas.

Un atacante puede encontrar vulnerabilidades de HPP encontrando formularios o acciones que permitan la entrada proporcionada por el usuario. Luego, el atacante puede agregar el mismo parámetro a los datos **GET** o **POST** , pero con un valor diferente asignado.

Considere la siguiente URL:

```
/?search=cars
```

Esta URL tiene la cadena de consulta **search** y el valor del parámetro **cars** . El parámetro puede estar oculto entre varios otros parámetros. Un atacante podría dejar el parámetro actual en su lugar y agregar un duplicado, como se muestra aquí:

```
/?search=cars&results=20
```

Luego, el atacante podría agregar el mismo parámetro con un valor diferente y enviar la nueva solicitud:

```
/?search=cars&results=20&search=bicicletas
```

Después de enviar la solicitud, el atacante podría analizar la página de respuesta para identificar si alguno de los valores ingresados ​​fue analizado por la aplicación. A veces es necesario enviar tres solicitudes HTTP para cada parámetro HTTP. Si la respuesta del tercer parámetro es diferente del primero (y la respuesta del tercer parámetro también es diferente del segundo), esto puede ser un indicador de una falta de coincidencia de impedancia que podría usarse para desencadenar vulnerabilidades HPP.

<mark style="color:red;">**Recursos**</mark>

{% embed url="https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/04-Testing_for_HTTP_Parameter_Pollution" %}

{% embed url="https://book.hacktricks.xyz/pentesting-web/parameter-pollution" %}

{% embed url="https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/04-Testing_for_HTTP_Parameter_Pollution" %}
