Name |
Manipulating Hidden Fields |
|
Likelyhood of attack |
Typical severity |
Medium |
High |
|
Summary |
An adversary exploits a weakness in the server's trust of client-side processing by modifying data on the client-side, such as price information, and then submitting this data to the server, which processes the modified data. For example, eShoplifting is a data manipulation attack against an on-line merchant during a purchasing transaction. The manipulation of price, discount or quantity fields in the transaction message allows the adversary to acquire items at a lower cost than the merchant intended. The adversary performs a normal purchasing transaction but edits hidden fields within the HTML form response that store price or other information to give themselves a better deal. The merchant then uses the modified pricing information in calculating the cost of the selected items. |
Prerequisites |
The targeted site must contain hidden fields to be modified. The targeted site must not validate the hidden fields with backend processing. |
Execution Flow |
Step |
Phase |
Description |
Techniques |
1 |
Explore |
[Probe target web application] The adversary first probes the target web application to find all possible pages that can be visited on the website. |
- Use a spidering tool to follow and record all links
- Use a proxy tool to record all links visited during a manual traversal of the web application.
|
2 |
Explore |
[Find hidden fields] Once the web application has been traversed, the adversary looks for all hidden HTML fields present in the client-side. |
- Use the inspect tool on all modern browsers and filter for the keyword "hidden"
- Specifically look for hidden fields inside form elements.
|
3 |
Experiment |
[Send modified hidden fields to server-side] Once the adversary has found hidden fields in the client-side, they will modify the values of these hidden fields one by one and then interact with the web application so that this data is sent to the server-side. The adversary observes the response from the server to determine if the values of each hidden field are being validated. |
|
4 |
Exploit |
[Manipulate hidden fields] Once the adversary has determined which hidden fields are not being validated by the server, they will manipulate them to change the normal behavior of the web application in a way that benefits the adversary. |
- Manipulate a hidden field inside a form element and then submit the form so that the manipulated data is sent to the server.
|
|
Solutions | |
Related Weaknesses |
CWE ID
|
Description
|
CWE-602 |
Client-Side Enforcement of Server-Side Security |
|
Related CAPECS |
CAPEC ID
|
Description
|
CAPEC-77 |
This attack targets user controlled variables (DEBUG=1, PHP Globals, and So Forth). An adversary can override variables leveraging user-supplied, untrusted query variables directly used on the application server without any data sanitization. In extreme cases, the adversary can change variables controlling the business logic of the application. For instance, in languages like PHP, a number of poorly set default configurations may allow the user to override variables. |
|