Black Hat EU: HTTP Parameter Pollution Vulnerabilities in Web Applications – By Marco Balduzzi
Marco’s (embyte@iseclab.org) research focuses on the first automated approach to detect PHP parameter pollution.
What is parameter pollution?
In http it is allow to provide a parameter via GET and via POST. You can also provide a parameter twice. Some application do not handle this very well and interpret both, the first or the second.
E.g. will the url http://somesite.com/vote.jpt?pool_id=4568&candidate=green&candidate=white vote for Mr. Green or Mr. White? Since PHP always opts for the first parameter the vote will go to Mr. Green.
Since parameters in a get request overwrite the parameters in the post request, An attacker can pollute http parameters without manipulating the page itself.
Marco has built a system that can automatically test HTTP parameter pollution for both problems:
P-Scan scans for Parameter precedence.
It performs three tests:
- Error Test – Test if the application crashes if a parameter is repeated twice
- Identity test – Is a second parameter considered by the application
- Base test – Assume that pre-filtering works
V-Scan tests for actual http parameter pollution vulnerabilities. When it is determined that pages reactive differently when parameter pollution is applied. V-Scan eliminates those cases where these differences are not a vulnerability.
These tests are implemented in a tool called PAPAS.
Marco proceeds to present the results of deploying PAPAS against about 5,000 popular websites. The sites that appeared to vulnerable in more vulnerable where inspected in more detail.









