CAPEC-77
Manipulating User-Controlled Variables
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.
Abstraction
Standard
Typical severity
Very High
Likelihood of attack
High
Understand the attack
What is this attack pattern?
Execution flow
How does the attack proceed, step by step?
Explore
Probe target application
Experiment
Find user-controlled variables
Techniques used
- Adversaries will try to alter many common variable names such as "count", "tempFile", "i", etc. The hope is that they can alter the flow of the application without knowing the inner-workings.
- Adversaries will try to alter known environment variables.
Exploit
Manipulate user-controlled variables
Requirements
What does the attack require?
Prerequisites
- A variable consumed by the application server is exposed to the client.
- A variable consumed by the application server can be overwritten by the user.
- The application server trusts user supplied data to compute business logic.
- The application server does not perform proper input validation.
Skills required
- Low: The malicious user can easily try some well-known global variables and find one which matches.
- Medium: The adversary can use automated tools to probe for variables that they can control.
Resources required
Not stated in the MITRE record.
Detection
What are the indicators of the attack?
Impact
What does a successful attack lead to?
Affected scopes: Integrity
Affected scopes: Confidentiality, Integrity, Availability
Affected scopes: Confidentiality
Affected scopes: Confidentiality, Access Control, Authorization
Defence
How is it prevented and mitigated?
Real world