|
|
| Home > CAPEC List > Individual CAPEC Dictionary Definition (Release 1.1) | View the CAPEC List |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Individual CAPEC Dictionary Definition (Release 1.1)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Restful Privilege Elevation | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Attack Pattern ID | Pattern Abstraction: Detailed 58 | ||||||||||||||||||||||||||||||||
| Typical Severity | High | ||||||||||||||||||||||||||||||||
| Description | Summary
| ||||||||||||||||||||||||||||||||
| Attack Prerequisites | The attacker needs to be able to identify HTTP Get URLs. The Get methods must be set to call applications that perform operations other than get such as update and delete. | ||||||||||||||||||||||||||||||||
| Typical Likelihood of Exploit | High | ||||||||||||||||||||||||||||||||
| Methods of Attack |
| ||||||||||||||||||||||||||||||||
| Examples-Instances | Description The HTTP Get method is designed to retrieve resources and not to alter the state of the application or resources on the server side. However, developers can easily code programs that accept a HTTP Get request that do in fact create, update or delete data on the server. Both Flickr (http://www.flickr.com/services/api/flickr.photosets.delete.html) and del.icio.us (http://del.icio.us/api/posts/delete) have implemented delete operations using standard HTTP Get requests. These HTTP Get methods do delete data on the server side, despite being called from Get which is not supposed to alter state. | ||||||||||||||||||||||||||||||||
| Attacker Skill or Knowledge Required | Low → It is relatively straightforward to identify an HTTP Get method that changes state on the server side and executes against an overprivileged system interface | ||||||||||||||||||||||||||||||||
| Resources Required |
| ||||||||||||||||||||||||||||||||
| Probing Techniques | Attacker may enumerate URLs to identify vulnerable services. | ||||||||||||||||||||||||||||||||
| Solutions and Mitigations | Design: Enforce principle of least privilege Implementation: Ensure that HTTP Get methods only retrieve state and do not alter state on the server side Implementation: Ensure that HTTP methods have proper ACLs based on what the funcitonality they expose | ||||||||||||||||||||||||||||||||
| Attack Motivation- |
| ||||||||||||||||||||||||||||||||
| Context Description |
| ||||||||||||||||||||||||||||||||
| Injection Vector | Payload delivered through standard communication protocols. In the Flickr and del.icio.us examples above, this is done through a normal web browser | ||||||||||||||||||||||||||||||||
| Payload | Command(s) executed directly on host | ||||||||||||||||||||||||||||||||
| Activation Zone | Client machine and client network | ||||||||||||||||||||||||||||||||
| Payload Activation Impact | Enables attacker to execute server side code with any commands that the program owner has privileges to. | ||||||||||||||||||||||||||||||||
| Related Weaknesses |
| ||||||||||||||||||||||||||||||||
| Related Attack Patterns |
| ||||||||||||||||||||||||||||||||
| Purpose | Penetration Exploitation | ||||||||||||||||||||||||||||||||
| CIA Impact |
| ||||||||||||||||||||||||||||||||
| Technical Context |
| ||||||||||||||||||||||||||||||||
| References |
Mark O'Neill, "Security for REST Web Services", http://www.vordel.com/downl | ||||||||||||||||||||||||||||||||
| Source |
| ||||||||||||||||||||||||||||||||