Difference between revisions of "Setting Manipulation"

From OWASP
Jump to: navigation, search
 
(6 intermediate revisions by one user not shown)
Line 2: Line 2:
 
<br>
 
<br>
 
[[Category:OWASP ASDR Project]]
 
[[Category:OWASP ASDR Project]]
[[ASDR Table of Contents]]__TOC__
 
  
==Description==
 
  
This attack aims to modify application settings in order to cause data misleading or advantages on user behalf. He may manipulate values in the system and manages specific resources user by application or affects its functionalities.
+
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''
 +
 
 +
==Description==
 +
This attack aims to modify application settings in order to cause misleading data or advantages on the attacker's behalf. He may manipulate values in the system and manage specific user resources of the application or affect its functionalities.
  
 
An attacker can exploit several functionalities of the application using this attack technique, but it would not possible to describe all the ways of exploration, due to innumerable options that attacker may use to control the system values.   
 
An attacker can exploit several functionalities of the application using this attack technique, but it would not possible to describe all the ways of exploration, due to innumerable options that attacker may use to control the system values.   
  
Using this attack technique, it is possible to manipulate settings by changing the application functions, such as calls to the database, blocking access to external libraries and/or modification log files.
+
Using this attack technique, it is possible to manipulate settings by changing the application functions, such as calls to the database, blocking access to external libraries, and/or modification log files.
  
 
== Risk Factors==
 
== Risk Factors==
 
TBD
 
TBD
[[Category:FIXME|need content here]]
 
  
  
Line 21: Line 21:
 
===Example 1 ===
 
===Example 1 ===
  
An attacker needs to identify the variables without input validation or improperly encapsulated to obtain success in the attack.
+
An attacker needs to identify the variables without input validation or those improperly encapsulated to obtain success in the attack.
  
The following example was based on the ones found in the Individual CWE Dictionary Definition (Setting Manipulation-15).  
+
The following example was based on those found in the Individual CWE Dictionary Definition (Setting Manipulation-15).  
  
 
Consider the following piece of Java code:
 
Consider the following piece of Java code:
Line 30: Line 30:
 
   ...
 
   ...
  
This fragment reads the string “catalog” from “HttpServletRequest” and sets it as the active catalog for a database connection. An attacker could manipulate this information and cause connection error or unauthorized access to other catalogs.
+
This fragment reads the string “catalog” from “HttpServletRequest” and sets it as the active catalog for a database connection. An attacker could manipulate this information and cause a connection error or unauthorized access to other catalogs.
 
+
  
 
===Example 2 – Block Access to Libraries ===
 
===Example 2 – Block Access to Libraries ===
  
The attacker has the privileges to block application access to external libraries to execute this attack. It is necessary discover what external libraries are accessed by application and block it. The attacker needs to observe if behavior of the system goes into an insecure/inconsistent state.
+
The attacker has the privileges to block application access to external libraries to execute this attack. It is necessary to discover what external libraries are accessed by the application and block them. The attacker needs to observe if the behavior of the system goes into an insecure/inconsistent state.
  
In this case the application uses a third party cryptographic random number generation library that used in generation of user session ids. An attacker may block to access this library by renaming it.
+
In this case the application uses a third party cryptographic random number generation library to generate user Session IDs. An attacker may block access to this library by renaming it.
Then an application will be use the weak pseudo random number generation library. The attacker can use this weakness to predict the session id user, he/she attempts to perform elevation of privilege escalation and gains access user’s account.  
+
Then the application will use the weak pseudo random number generation library. The attacker can use this weakness to predict the Session ID user; he/she attempts to perform elevation of privilege escalation and gains access to the user's account.  
  
 
For more details about this attack, see:
 
For more details about this attack, see:
Line 50: Line 49:
  
 
==Related [[Vulnerabilities]]==
 
==Related [[Vulnerabilities]]==
* [[:Category:General_Logic_Error_Vulnerability]]
+
* [[:Category:General Logic Error Vulnerability]]
  
 
==Related [[Controls]]==
 
==Related [[Controls]]==

Latest revision as of 06:50, 23 April 2009

This is an Attack. To view all attacks, please see the Attack Category page.




Last revision (mm/dd/yy): 04/23/2009

Description

This attack aims to modify application settings in order to cause misleading data or advantages on the attacker's behalf. He may manipulate values in the system and manage specific user resources of the application or affect its functionalities.

An attacker can exploit several functionalities of the application using this attack technique, but it would not possible to describe all the ways of exploration, due to innumerable options that attacker may use to control the system values.

Using this attack technique, it is possible to manipulate settings by changing the application functions, such as calls to the database, blocking access to external libraries, and/or modification log files.

Risk Factors

TBD


Example

Example 1

An attacker needs to identify the variables without input validation or those improperly encapsulated to obtain success in the attack.

The following example was based on those found in the Individual CWE Dictionary Definition (Setting Manipulation-15).

Consider the following piece of Java code:

 …
 conn.setCatalog(request.getParameter(“catalog”));
 ...

This fragment reads the string “catalog” from “HttpServletRequest” and sets it as the active catalog for a database connection. An attacker could manipulate this information and cause a connection error or unauthorized access to other catalogs.

Example 2 – Block Access to Libraries

The attacker has the privileges to block application access to external libraries to execute this attack. It is necessary to discover what external libraries are accessed by the application and block them. The attacker needs to observe if the behavior of the system goes into an insecure/inconsistent state.

In this case the application uses a third party cryptographic random number generation library to generate user Session IDs. An attacker may block access to this library by renaming it. Then the application will use the weak pseudo random number generation library. The attacker can use this weakness to predict the Session ID user; he/she attempts to perform elevation of privilege escalation and gains access to the user's account.

For more details about this attack, see: http://capec.mitre.org/data/definitions/96.html

Related Threat Agents

Related Attacks

Related Vulnerabilities

Related Controls

References