http-parameter-pollution

Tests duplicate HTTP parameters to exploit parser disagreements across WAFs, proxies, and frameworks.

Updated Jun 5, 2026
One-click install
npx skills add https://github.com/lNwNl/Praxis --skill http-parameter-pollution-lnwnl
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: http-parameter-pollution
Source: https://github.com/lNwNl/Praxis/tree/main/skills/_disabled/http-parameter-pollution
Command: npx skills add https://github.com/lNwNl/Praxis --skill http-parameter-pollution-lnwnl

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Web stacks often parse duplicate HTTP parameters inconsistently: a WAF may read the first value while the backend framework reads the last, creating gaps that enable filter bypasses, SSRF, CSRF token confusion, and business-logic abuse. This Skill provides a systematic methodology to fingerprint parser behavior and exploit those disagreements during authorized security assessments. ## Core Features & Use Cases - Server Behavior Matrix: Reference table of how PHP, ASP.NET, JSP, Django, Flask, Express, Rack, Go, and others resolve duplicate keys (first, last, join, or array). - Payload Patterns: Ready-to-use duplicate-key, array-style, encoded-ampersand, nested-bracket, and JSON duplicate-key payloads for query strings, form bodies, and multipart data. - Attack Scenario Chains: Structured playbooks for HPP combined with WAF bypass, SSRF (validator vs fetcher URL split), CSRF token confusion, and numeric business-logic fields like price or amount. - Use Case: During an authorized pentest, you suspect a WAF inspects only the first id parameter while the PHP backend uses the last. Use the Skill's matrix and decision tree to confirm the split with id=1&id=2 ordering tests, then craft a bypass payload. ## Quick Start Ask the agent to test the target endpoint for HTTP parameter pollution by sending duplicate parameters and comparing how the WAF and backend interpret them.

Frequently Asked Questions about http-parameter-pollution

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test for HTTP parameter pollution?▼

Send duplicate parameters like a=1&a=2 in both orders and observe which value the application uses. Compare behavior across the WAF and backend, then apply payloads targeting first/last/join parser differences documented in the server behavior matrix.

Which frameworks are vulnerable to HPP parser differences?▼

Most frameworks have distinct defaults: PHP and Django take the last value, Flask, JSP, and Go take the first, ASP.NET joins values with commas, and Express returns an array. Vulnerability arises when layers in the request path disagree.

Can HTTP parameter pollution bypass a WAF?▼

Yes, when the WAF inspects one occurrence of a parameter while the application consumes another. A payload like id=1&id=<injection> can pass the WAF's check on the first value while the backend executes the second.

Does HPP work with JSON request bodies?▼

Yes, JSON duplicate keys such as {"test":"user","test":"admin"} are parsed inconsistently; most parsers including JavaScript's JSON.parse keep the last key, while some keep the first. Content-Type confusion can amplify the effect.

What tools can I use for HPP testing?▼

Burp Suite Repeater allows raw duplication of keys in query and body, with Param Miner for hidden parameters. Custom scripts that preserve exact parameter ordering are recommended since some HTTP clients normalize duplicates.

When should I avoid HPP testing?▼

Avoid HPP testing without explicit authorization, since payloads targeting payment amounts, account settings, or CSRF tokens can change server state. Scope tests to approved targets and document parser behavior before high-impact requests.