API Abuse/Misuse |
Attack Pattern ID: 113 (Standard Attack Pattern Completeness: Stub) | Typical Severity: Medium | Status: Draft |
Summary
An attacker manipulates the processing of Application Programming Interface (API) resulting in the API's function having an adverse impact upon the security of the system or application implementing the API. This can allow the attacker to execute functionality not intended by the API implementation, possibly compromising the system or application which integrates the API. API Abuse can take on a number of forms. For example, the API may trust that the calling function properly validates its data and thus it may be manipulated by supplying metacharacters or alternate encodings as input, resulting in any number of injection flaws, including SQL injection, cross-site scripting, or command execution. Another example could be API methods that should be disabled in a production application but were not, thus exposing dangerous functionality within a production environment.
The target system must expose API functionality in a manner that can be discovered and manipulated by an attacker. This may require reverse engineering the API syntax or decrypting/de-obfuscating client-server exchanges.
The requirements vary depending upon the nature of the API. For application-layer APIs related to the processing of the HTTP protocol, one or more of the following may be needed: a MITM (Man-In-The-Middle) proxy, a web browser, or a programming/scripting language.
Nature | Type | ID | Name | Description | View(s) this relationship pertains to![]() |
---|---|---|---|---|---|
ChildOf | ![]() | 210 | Abuse of Functionality | Mechanism of Attack (primary)1000 | |
ParentOf | ![]() | 36 | Using Unpublished Web Service APIs | Mechanism of Attack (primary)1000 | |
ParentOf | ![]() | 121 | Locate and Exploit Test APIs | Mechanism of Attack (primary)1000 | |
ParentOf | ![]() | 160 | Programming to included script-based APIs | Mechanism of Attack (primary)1000 | |
ParentOf | ![]() | 179 | Discovering, querying, and finally calling micro-services, such as w/ AJAX | Mechanism of Attack (primary)1000 | |
ParentOf | ![]() | 211 | Leveraging web tools (e.g. Mozilla's GreaseMonkey, Firebug) to change application behavior | Mechanism of Attack (primary)1000 |