API parameter pollution

What is API Parameter Pollution?

API Parameter Pollution (APP) exploits inconsistencies in how different components of an application stack parse and process duplicate or conflicting parameters. When APIs receive multiple parameters with the same name, different technologies (web servers, frameworks, load balancers) may handle them differently, leading to security bypasses, authentication issues, and business logic flaws.

Vulnerable Scenario Example

Normal API request:

POST /api/transfer HTTP/1.1
Content-Type: application/x-www-form-urlencoded

amount=100&to_account=user123&from_account=admin

Parameter pollution attack:

POST /api/transfer HTTP/1.1
Content-Type: application/x-www-form-urlencoded

amount=100&to_account=user123&amount=999999&to_account=attacker&from_account=admin

Different component handling:

  • Web Application Firewall: Sees first parameters → amount=100, to_account=user123 (allowed)

  • Backend API: Processes last parameters → amount=999999, to_account=attacker (executed)

Attack Result: WAF allows the request based on legitimate-looking first parameters, but the backend processes the malicious duplicate parameters, transferring $999,999 to the attacker's account.

Parameter Processing Differences

Technology-Specific Handling

PHP (takes last value):

ASP.NET (takes first value):

Node.js/Express (varies by parser):

Python/Flask (takes first value):

API Parameter Pollution Attack Techniques

Authentication and Authorization Bypass

Role-Based Access Control Bypass:

Multi-Parameter Authentication:

Token-Based Bypass:

Business Logic Manipulation

E-commerce Price Manipulation:

Payment Amount Tampering:

Discount Code Stacking:

Input Validation Bypass

WAF/Security Filter Evasion:

Content Security Policy Bypass:

Rate Limiting Bypass:

Testing Methodology

Manual Parameter Pollution Testing

Using Burp Suite:

Postman Testing:

Burp Suite Automated Testing

Intruder Configuration:

Advanced Parameter Pollution Techniques

Content-Type Confusion

Mixed Content-Type Pollution:

Multipart Pollution:

Framework-Specific Exploits

Laravel Parameter Pollution:

Spring Boot Pollution:

Express.js Array Pollution:

Logic Bomb Parameter Pollution

Time-Based Pollution:

Conditional Parameter Pollution:

Business Logic Attack Scenarios

Financial Transaction Manipulation

Banking API Exploitation:

Cryptocurrency Exchange:

Access Control Bypass

Multi-Tenant Application:

Resource Permission Bypass:

Detection and Analysis

Response Analysis Patterns

Status Code Changes:

Timing Analysis

Time-Based Detection:

Testing Checklist

Parameter Pollution Test Cases

Basic Tests:

Authentication/Authorization Tests:

Business Logic Tests:

Input Validation Tests:

Framework-Specific Tests:

Last updated

Was this helpful?