Description
The Web Parameter Tampering attack is based on
manipulation of parameters exchanged between client and
server in order to modify application data such as user
credentials and permissions, price and quantity of products,
etc. Usually, this information is stored in cookies, hidden
form fields or URL Query Strings and is used to increase
application functionality and control.
This attack can be performed in the context of a
malicious user who wants to exploit the application for
their own benefit or an attacker who wishes to attack a
third-person using a Man in the Middle attack. In both
cases, tools likes Webscarab and Paros proxy are mostly
used.
The attack success depends on integrity and logic
validation mechanism errors and its exploitation can result
on other consequences including XSS, SQL Injection, file
inclusion and path disclosure attacks.
Severity
High
Likelihood of exploitation
Very High
Examples
Example 1
The parameter modification of form fields can be
considered a typical example of Web Parameter Tampering
attack.
For example, consider a user who can select form field
values (combo box, check box, etc.) on an application page.
When these values are submitted by user, they could be
acquired and arbitrarily manipulated by an attacker.
Example 2
When a web application uses hidden fields to store status
information, a malicious user can tamper the values stored
on his browser and change the referred information. For
example, an e-commerce shopping site uses hidden fields to
refer to its items, as follows:
<input type=”hidden” id=”1008” name=”cost” value=”70.00”>
In this example, an attacker can modify the “value”
information of a specific item, thus lowering its cost.
Example 3
An attacker can tamper URL parameters directly. For
example, consider a web application that permits user to
select his profile from a combo box and debit the account:
http://www.attackbank.com/default.asp?profile=741&debit=1000
In this case, an attacker could tamper the URL using
other values for profile and debit:
http://www.attackbank.com/default.asp?profile=852&debit=2000
Other parameters can be changed including attribute
parameters. In the following example, it’s possible to
tamper the status variable and delete a page from the
server:
http://www.attackbank.com/savepage.asp?nr=147&status=read
Modifying status variable to delete the page:
http://www.attackbank.com/savepage.asp?nr=147&status=del