{ "id": "bundle--36b5a045-c220-403a-96c1-02500df07699", "objects": [ { "created": "2023-01-30T20:40:28.791035Z", "definition": { "statement": "CAPEC is sponsored by US-CERT in the office of Cybersecurity and Communications at the U.S. Department of Homeland Security. Copyright © 2007 - 2023, The MITRE Corporation. CAPEC and the CAPEC logo are trademarks of The MITRE Corporation." }, "definition_type": "statement", "id": "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d", "spec_version": "2.1", "type": "marking-definition" }, { "created": "2023-01-30T20:40:28.791901Z", "id": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "identity_class": "organization", "modified": "2023-01-30T20:40:28.791901Z", "name": "The MITRE Corporation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "identity" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "In applications, particularly web applications, access to functionality is mitigated by an authorization framework. This framework maps Access Control Lists (ACLs) to elements of the application's functionality; particularly URL's for web apps. In the case that the administrator failed to specify an ACL for a particular element, an attacker may be able to access it with impunity. An attacker with the ability to access functionality not properly constrained by ACLs can obtain sensitive information and possibly compromise the entire application. Such an attacker can access resources that must be available only to users at a higher privilege level, can access management sections of the application, or can run queries for data that they otherwise not supposed to.", "external_references": [ { "external_id": "CAPEC-1", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/1.html" }, { "external_id": "CWE-276", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/276.html" }, { "external_id": "CWE-285", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/285.html" }, { "external_id": "CWE-434", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/434.html" }, { "external_id": "CWE-693", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/693.html" }, { "external_id": "CWE-732", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/732.html" }, { "external_id": "CWE-1191", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1191.html" }, { "external_id": "CWE-1193", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1193.html" }, { "external_id": "CWE-1220", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1220.html" }, { "external_id": "CWE-1297", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1297.html" }, { "external_id": "CWE-1311", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1311.html" }, { "external_id": "CWE-1314", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1314.html" }, { "external_id": "CWE-1315", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1315.html" }, { "external_id": "CWE-1318", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1318.html" }, { "external_id": "CWE-1320", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1320.html" }, { "external_id": "CWE-1321", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1321.html" }, { "external_id": "CWE-1327", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1327.html" }, { "description": "Hijack Execution Flow: ServicesFile Permissions Weakness", "external_id": "T1574.010", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1574/010" } ], "id": "attack-pattern--92cdcd3d-d734-4442-afc3-4599f261498b", "modified": "2022-09-29T00:00:00.000Z", "name": "Accessing Functionality Not Properly Constrained by ACLs", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_can_precede_refs": [ "attack-pattern--9ad2c2eb-9939-4590-9683-2e789692d262" ], "x_capec_child_of_refs": [ "attack-pattern--fd669b7d-0e79-473c-9808-a860dfb0c871" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Confidentiality": [ "Gain Privileges" ] }, "x_capec_domains": [ "Software", "Hardware" ], "x_capec_example_instances": [ "\n Implementing the Model-View-Controller (MVC) within Java EE's Servlet paradigm using a \"Single front controller\" pattern that demands that brokered HTTP requests be authenticated before hand-offs to other Action Servlets.\n If no security-constraint is placed on those Action Servlets, such that positively no one can access them, the front controller can be subverted.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey: The attacker surveys the target application, possibly as a valid and authenticated user

  2. Techniques
    Spidering web sites for all available links
    Brute force guessing of resource names
    Brute force guessing of user names / credentials
    Brute force guessing of function names / actions
  3. Identify Functionality: At each step, the attacker notes the resource or functionality access mechanism invoked upon performing specific actions

  4. Techniques
    Use the web inventory of all forms and inputs and apply attack data to those inputs.
    Use a packet sniffer to capture and record network traffic
    Execute the software in a debugger and record API calls into the operating system or important libraries. This might occur in an environment other than a production environment, in order to find weaknesses that can be exploited in a production environment.

Experiment

  1. Iterate over access capabilities: Possibly as a valid user, the attacker then tries to access each of the noted access mechanisms directly in order to perform functions not constrained by the ACLs.

  2. Techniques
    Fuzzing of API parameters (URL parameters, OS API parameters, protocol parameters)
", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--74bac7d9-693d-40d2-82bf-eb132f13bcaf", "attack-pattern--3ba20dcc-8fec-4d74-a472-eb9694fe8142", "attack-pattern--1abd165a-57e9-4b78-9221-7b6fcdc57810", "attack-pattern--e8a8a8f5-3ad5-4d3f-a35b-48036147266b" ], "x_capec_prerequisites": [ "The application must be navigable in a manner that associates elements (subsections) of the application with ACLs.", "The various resources, or individual URLs, must be somehow discoverable by the attacker", "The administrator must have forgotten to associate an ACL or has associated an inappropriately permissive ACL with a particular navigable resource." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Low": "In order to discover unrestricted resources, the attacker does not need special tools or skills. They only have to observe the resources or access mechanisms invoked as each action is performed and then try and access those access mechanisms directly." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "\n In a J2EE setting, administrators can associate a role that is impossible for the authenticator to grant users, such as \"NoAccess\", with all Servlets to which access is guarded by a limited number of servlets visible to, and accessible by, the user.\n Having done so, any direct access to those protected Servlets will be prohibited by the web container.\n In a more general setting, the administrator must mark every resource besides the ones supposed to be exposed to the user as accessible by a role impossible for the user to assume. The default security setting must be to deny access and then grant access only to those resources intended by business logic.\n ", "id": "course-of-action--0d8de0b8-e9fd-44b2-8f1f-f8aae79949be", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-1-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--c796a053-8016-4098-9d01-e680e042cb24", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--0d8de0b8-e9fd-44b2-8f1f-f8aae79949be", "spec_version": "2.1", "target_ref": "attack-pattern--92cdcd3d-d734-4442-afc3-4599f261498b", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This attack pattern involves causing a buffer overflow through manipulation of environment variables. Once the adversary finds that they can modify an environment variable, they may try to overflow associated buffers. This attack leverages implicit trust often placed in environment variables.", "external_references": [ { "external_id": "CAPEC-10", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/10.html" }, { "external_id": "CWE-120", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/120.html" }, { "external_id": "CWE-302", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/302.html" }, { "external_id": "CWE-118", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/118.html" }, { "external_id": "CWE-119", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/119.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "external_id": "CWE-99", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/99.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-680", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/680.html" }, { "external_id": "CWE-733", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/733.html" }, { "external_id": "CWE-697", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/697.html" }, { "description": "Buffer Overflow via Environment Variables", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Buffer_Overflow_via_Environment_Variables" }, { "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley", "external_id": "REF-1", "source_name": "reference_from_CAPEC" }, { "description": "Sharefuzz", "external_id": "REF-2", "source_name": "reference_from_CAPEC", "url": "http://sharefuzz.sourceforge.net" } ], "id": "attack-pattern--4a29d66d-8617-4382-b456-578ecdb1609e", "modified": "2022-09-29T00:00:00.000Z", "name": "Buffer Overflow via Environment Variables", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_follow_refs": [ "attack-pattern--ca989a50-b24e-4917-a234-ce4788fa21c7" ], "x_capec_child_of_refs": [ "attack-pattern--77e51461-7843-411c-a90e-852498957f76" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Unreliable Execution", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Read Data", "Gain Privileges" ], "Integrity": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Modify Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n A buffer overflow in sccw allows local users to gain root access via the $HOME environmental variable. See also: CVE-1999-0906\n ", "\n A buffer overflow in the rlogin program involves its consumption of the $TERM environmental variable. See also: CVE-1999-0046\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify target application: The adversary identifies a target application or program to perform the buffer overflow on. In this attack the adversary looks for an application that loads the content of an environment variable into a buffer.

Experiment

  1. Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.

  2. Techniques
    Change the values of environment variables thought to be used by the application to contain excessive data. If the program is loading the value of the environment variable into a buffer, this could cause a crash and an attack vector will be found.
  3. Craft overflow content: The adversary crafts the content to be injected. If the intent is to simply cause the software to crash, the content need only consist of an excessive quantity of random data. If the intent is to leverage the overflow for execution of arbitrary code, the adversary crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.

  4. Techniques
    Create malicious shellcode that will execute when the program execution is returned to it.
    Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs

Exploit

  1. Overflow the buffer: Using the injection vector, the adversary injects the crafted overflow content into the buffer.

", "x_capec_extended_description": "Although the focus of this attack is putting excessive content into an environment variable that is loaded into a buffer, environment variables can be used to assist a classic buffer overflow attack as well. In the case where the buffer used in a traditional buffer overflow attack is not large enough to store the adversary's shell code, they will store the shell code in an environment variable and attempt to return to its address, rather than back into the data they wrote to the buffer.", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "The application uses environment variables.", "An environment variable exposed to the user is vulnerable to a buffer overflow.", "The vulnerable environment variable uses untrusted data.", "Tainted data used in the environment variables is not properly validated. For instance boundary checking is not done before copying the input data to a buffer." ], "x_capec_skills_required": { "High": "Exploiting a buffer overflow to inject malicious code into the stack of a software system or even the heap can require a higher skill level.", "Low": "An attacker can simply overflow a buffer by inserting a long string into an attacker-modifiable injection vector. The result can be a DoS." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Do not expose environment variable to the user.", "id": "course-of-action--0dfd5de3-6691-47d2-abfd-21299e9f040b", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-10-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6afe60c3-f515-4128-a724-0989e27e5bb0", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--0dfd5de3-6691-47d2-abfd-21299e9f040b", "spec_version": "2.1", "target_ref": "attack-pattern--4a29d66d-8617-4382-b456-578ecdb1609e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Do not use untrusted data in your environment variables.", "id": "course-of-action--76f448da-5586-4aae-b516-46ff7c52ba87", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-10-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--371669b4-ddf9-41df-b755-093aa08a1c2d", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--76f448da-5586-4aae-b516-46ff7c52ba87", "spec_version": "2.1", "target_ref": "attack-pattern--4a29d66d-8617-4382-b456-578ecdb1609e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use a language or compiler that performs automatic bounds checking", "id": "course-of-action--950e1236-9a75-40d0-a5f7-1c1777109da5", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-10-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--5981e722-08a7-4513-8c85-f487b377ebfb", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--950e1236-9a75-40d0-a5f7-1c1777109da5", "spec_version": "2.1", "target_ref": "attack-pattern--4a29d66d-8617-4382-b456-578ecdb1609e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "There are tools such as Sharefuzz [REF-2] which is an environment variable fuzzer for Unix that support loading a shared library. You can use Sharefuzz to determine if you are exposing an environment variable vulnerable to buffer overflow.", "id": "course-of-action--9a8c3aec-f2ce-4b6e-b416-33f58933ac90", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-10-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d48d20f4-9361-40f9-81b3-74f2f8b86bea", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--9a8c3aec-f2ce-4b6e-b416-33f58933ac90", "spec_version": "2.1", "target_ref": "attack-pattern--4a29d66d-8617-4382-b456-578ecdb1609e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an adversary. As a consequence, an adversary is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the adversaries' choice.", "external_references": [ { "external_id": "CAPEC-100", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/100.html" }, { "external_id": "CWE-120", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/120.html" }, { "external_id": "CWE-119", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/119.html" }, { "external_id": "CWE-131", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/131.html" }, { "external_id": "CWE-129", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/129.html" }, { "external_id": "CWE-805", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/805.html" }, { "external_id": "CWE-680", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/680.html" }, { "description": "Buffer Overflow", "external_id": "07", "source_name": "WASC", "url": "http://projects.webappsec.org/Buffer-Overflow" }, { "description": "Buffer overflow attack", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Buffer_overflow_attack" }, { "description": "OWASP Vulnerabilities, The Open Web Application Security Project (OWASP)", "external_id": "REF-620", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-community/vulnerabilities/Buffer_Overflow" } ], "id": "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "modified": "2021-10-21T00:00:00.000Z", "name": "Overflow Buffers", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--476ca631-2695-43f8-82f6-83c06a07ae36" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Unreliable Execution", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Gain Privileges" ], "Integrity": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "The most straightforward example is an application that reads in input from the user and stores it in an internal buffer but does not check that the size of the input data is less than or equal to the size of the buffer. If the user enters excessive length data, the buffer may overflow leading to the application crashing, or worse, enabling the user to cause execution of injected code.", "Many web servers enforce security in web applications through the use of filter plugins. An example is the SiteMinder plugin used for authentication. An overflow in such a plugin, possibly through a long URL or redirect parameter, can allow an adversary not only to bypass the security checks but also execute arbitrary code on the target web server in the context of the user that runs the web server process." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify target application: The adversary identifies a target application or program to perform the buffer overflow on. Adversaries often look for applications that accept user input and that perform manual memory management.

Experiment

  1. Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.

  2. Techniques
    Provide large input to a program or application and observe the behavior. If there is a crash, this means that a buffer overflow attack is possible.
  3. Craft overflow content: The adversary crafts the content to be injected. If the intent is to simply cause the software to crash, the content need only consist of an excessive quantity of random data. If the intent is to leverage the overflow for execution of arbitrary code, the adversary crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.

  4. Techniques
    Create malicious shellcode that will execute when the program execution is returned to it.
    Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs

Exploit

  1. Overflow the buffer: Using the injection vector, the adversary injects the crafted overflow content into the buffer.

", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--4a29d66d-8617-4382-b456-578ecdb1609e", "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "attack-pattern--d591235a-da3b-4872-8962-27fe44fa1ab0", "attack-pattern--4b856ceb-8bf7-4f0e-b423-89a420455b1d", "attack-pattern--3c08bb9d-43b5-4468-8b38-387c6cb60da7", "attack-pattern--d3634072-88f9-4711-987f-6bff7698bd4c", "attack-pattern--5d5ff43b-cbe7-4986-bfec-cf979f97e6b9", "attack-pattern--8e403d18-af4e-4abd-bd38-0f99f74b4636", "attack-pattern--e61f5dd9-d26e-454f-ab07-171f3dea6e73", "attack-pattern--4cd18074-15c1-4206-8391-115685669623", "attack-pattern--e62000f0-addd-4156-b9fd-469bbb211d45", "attack-pattern--b6a2983b-1d97-4698-b210-961ed0523f33" ], "x_capec_prerequisites": [ "Targeted software performs buffer operations.", "Targeted software inadequately performs bounds-checking on buffer operations.", "Adversary has the capability to influence the input to buffer operations." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. Detecting and exploiting a buffer overflow does not require any resources beyond knowledge of and access to the target system." ], "x_capec_skills_required": { "High": "In cases of directed overflows, where the motive is to divert the flow of the program or application as per the adversaries' bidding, high level skills are required. This may involve detailed knowledge of the target system architecture and kernel.", "Low": "In most cases, overflowing a buffer does not require advanced skills beyond the ability to notice an overflow and stuff an input variable with content." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use a language or compiler that performs automatic bounds checking.", "id": "course-of-action--a253c485-f225-4dd3-b0ba-dbe4b29fa134", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-100-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--cedea035-6835-4307-a59b-acd58ec23ecd", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a253c485-f225-4dd3-b0ba-dbe4b29fa134", "spec_version": "2.1", "target_ref": "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use secure functions not vulnerable to buffer overflow.", "id": "course-of-action--5549f741-7e5e-4f04-86bd-90dceb9c0de9", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-100-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--394fe1bb-8b4d-4638-b4e8-2a5719efe438", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--5549f741-7e5e-4f04-86bd-90dceb9c0de9", "spec_version": "2.1", "target_ref": "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "If you have to use dangerous functions, make sure that you do boundary checking.", "id": "course-of-action--07b3e24d-8000-4c35-881d-2eaae3f2411e", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-100-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--774c708f-2480-4cee-8e04-c42d603760e8", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--07b3e24d-8000-4c35-881d-2eaae3f2411e", "spec_version": "2.1", "target_ref": "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Compiler-based canary mechanisms such as StackGuard, ProPolice and the Microsoft Visual Studio /GS flag. Unless this provides automatic bounds checking, it is not a complete solution.", "id": "course-of-action--115171ef-9f32-43b6-bb8a-49f0a78286e9", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-100-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d04362e0-439c-40a1-bfa2-cbddb7b33bbd", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--115171ef-9f32-43b6-bb8a-49f0a78286e9", "spec_version": "2.1", "target_ref": "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use OS-level preventative functionality. Not a complete solution.", "id": "course-of-action--b8955156-d3d6-4db5-bc3b-595bda29964b", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-100-4", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--7aae34f4-823f-43ac-90e9-fa33251c4236", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b8955156-d3d6-4db5-bc3b-595bda29964b", "spec_version": "2.1", "target_ref": "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Utilize static source code analysis tools to identify potential buffer overflow weaknesses in the software.", "id": "course-of-action--61ed4ed4-15a0-4d2a-b38c-482bf5e682a5", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-100-5", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--7f190864-e6a8-45f8-af58-75124f4f4914", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--61ed4ed4-15a0-4d2a-b38c-482bf5e682a5", "spec_version": "2.1", "target_ref": "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker can use Server Side Include (SSI) Injection to send code to a web application that then gets executed by the web server. Doing so enables the attacker to achieve similar results to Cross Site Scripting, viz., arbitrary code execution and information disclosure, albeit on a more limited scale, since the SSI directives are nowhere near as powerful as a full-fledged scripting language. Nonetheless, the attacker can conveniently gain access to sensitive files, such as password files, and execute shell commands.", "external_references": [ { "external_id": "CAPEC-101", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/101.html" }, { "external_id": "CWE-97", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/97.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "description": "SSI Injection", "external_id": "36", "source_name": "WASC", "url": "http://projects.webappsec.org/SSI-Injection" }, { "description": "Server-Side Includes (SSI) Injection", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Server-Side_Includes_(SSI)_Injection" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-610", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/08-Testing_for_SSI_Injection.html" } ], "id": "attack-pattern--4e7abad3-5853-4e4b-a64e-7f23f10f8656", "modified": "2021-10-21T00:00:00.000Z", "name": "Server Side Include (SSI) Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_precede_refs": [ "attack-pattern--03a731ef-751b-43de-9159-9667d4be4d1a" ], "x_capec_child_of_refs": [ "attack-pattern--5a33bee7-5ec9-4e75-9bf6-99fdaca8699c" ], "x_capec_consequences": { "Availability": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Read Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Integrity": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n Consider a website hosted on a server that permits Server Side Includes (SSI), such as Apache with the \"Options Includes\" directive enabled.\n Whenever an error occurs, the HTTP Headers along with the entire request are logged, which can then be displayed on a page that allows review of such errors. A malicious user can inject SSI directives in the HTTP Headers of a request designed to create an error.\n When these logs are eventually reviewed, the server parses the SSI directives and executes them.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine applicability: The adversary determines whether server side includes are enabled on the target web server.

  2. Techniques
    Look for popular page file names. The attacker will look for .shtml, .shtm, .asp, .aspx, and other well-known strings in URLs to help determine whether SSI functionality is enabled.
    Fetch .htaccess file. In Apache web server installations, the .htaccess file may enable server side includes in specific locations. In those cases, the .htaccess file lives inside the directory where SSI is enabled, and is theoretically fetchable from the web server. Although most web servers deny fetching the .htaccess file, a misconfigured server will allow it. Thus, an attacker will frequently try it.

Experiment

  1. Find Injection Point: Look for user controllable input, including HTTP headers, that can carry server side include directives to the web server.

  2. Techniques
    Use a spidering tool to follow and record all links. Make special note of any links that include parameters in the URL.
    Use a proxy tool to record all links visited during a manual traversal of the web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms.

Exploit

  1. Inject SSI: Using the found injection point, the adversary sends arbitrary code to be inlcuded by the application on the server side. They may then need to view a particular page in order to have the server execute the include directive and run a command or open a file on behalf of the adversary.

", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "A web server that supports server side includes and has them enabled", "User controllable input that can carry include directives to the web server" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. Determining whether the server supports SSI does not require special tools, and nor does injecting directives that get executed. Spidering tools can make the task of finding and following links easier." ], "x_capec_skills_required": { "Medium": "The attacker needs to be aware of SSI technology, determine the nature of injection and be able to craft input that results in the SSI directives being executed." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Set the OPTIONS IncludesNOEXEC in the global access.conf file or local .htaccess (Apache) file to deny SSI execution in directories that do not need them", "id": "course-of-action--64214f54-8438-43c3-8052-8927af7d98bc", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-101-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--3428ab3f-34a5-436a-98f2-9be0a5397f94", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--64214f54-8438-43c3-8052-8927af7d98bc", "spec_version": "2.1", "target_ref": "attack-pattern--4e7abad3-5853-4e4b-a64e-7f23f10f8656", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "All user controllable input must be appropriately sanitized before use in the application. This includes omitting, or encoding, certain characters or strings that have the potential of being interpreted as part of an SSI directive", "id": "course-of-action--8dc4376f-e920-42a2-9578-575c37c7c146", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-101-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6c9bb040-3574-49f1-bec3-723afe52faa1", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--8dc4376f-e920-42a2-9578-575c37c7c146", "spec_version": "2.1", "target_ref": "attack-pattern--4e7abad3-5853-4e4b-a64e-7f23f10f8656", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Server Side Includes must be enabled only if there is a strong business reason to do so. Every additional component enabled on the web server increases the attack surface as well as administrative overhead", "id": "course-of-action--c52aed3b-1355-42cd-a2a4-3c570d0f5c35", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-101-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--c92c5203-00ee-424c-a58b-d36d36695f03", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--c52aed3b-1355-42cd-a2a4-3c570d0f5c35", "spec_version": "2.1", "target_ref": "attack-pattern--4e7abad3-5853-4e4b-a64e-7f23f10f8656", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Session sidejacking takes advantage of an unencrypted communication channel between a victim and target system. The attacker sniffs traffic on a network looking for session tokens in unencrypted traffic. Once a session token is captured, the attacker performs malicious actions by using the stolen token with the targeted application to impersonate the victim. This attack is a specific method of session hijacking, which is exploiting a valid session token to gain unauthorized access to a target system or information. Other methods to perform a session hijacking are session fixation, cross-site scripting, or compromising a user or server machine and stealing the session token.", "external_references": [ { "external_id": "CAPEC-102", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/102.html" }, { "external_id": "CWE-294", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/294.html" }, { "external_id": "CWE-522", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/522.html" }, { "external_id": "CWE-523", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/523.html" }, { "external_id": "CWE-319", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/319.html" }, { "external_id": "CWE-614", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/614.html" } ], "id": "attack-pattern--6a99b39b-b14a-4617-8aeb-bce85979f520", "modified": "2020-07-30T00:00:00.000Z", "name": "Session Sidejacking", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--63f43efb-7a34-4302-b3dc-8245100fdea9" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Unreliable Execution" ], "Confidentiality": [ "Gain Privileges", "Read Data" ], "Integrity": [ "Modify Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "The attacker and the victim are using the same WiFi public hotspot. When the victim connects to the hotspot, they has a hosted e-mail account open. This e-mail account uses AJAX on the client side which periodically asynchronously connects to the server side and transfers, amongst other things, the user's session token to the server. The communication is supposed to happen over HTTPS. However, the configuration in the public hotspot initially disallows the HTTPS connection (or any other connection) between the victim and the hosted e-mail servers because the victim first needs to register with the hotspot. The victim does so, but their e-mail client already defaulted to using a connection without HTTPS, since it was denied access the first time. Victim's session token is now flowing unencrypted between the victim's browser and the hosted e-mail servers. The attacker leverages this opportunity to capture the session token and gain access to the victim's hosted e-mail account." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Detect Unprotected Session Token Transfer: The attacker sniffs on the wireless network to detect unencrypted traffic that contains session tokens.

  2. Techniques
    The attacker uses a network sniffer tool like ferret or hamster to monitor the wireless traffic at a WiFi hotspot while examining it for evidence of transmittal of session tokens in unencrypted or recognizably encrypted form. An attacker applies their knowledge of the manner by which session tokens are generated and transmitted by various target systems to identify the session tokens.

Experiment

  1. Capture session token: The attacker uses sniffing tools to capture a session token from traffic.

  2. Insert captured session token: The attacker attempts to insert a captured session token into communication with the targeted application to confirm viability for exploitation.

Exploit

  1. Session Token Exploitation: The attacker leverages the captured session token to interact with the targeted application in a malicious fashion, impersonating the victim.

", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "An attacker and the victim are both using the same WiFi network.", "The victim has an active session with a target system.", "The victim is not using a secure channel to communicate with the target system (e.g. SSL, VPN, etc.)", "The victim initiated communication with a target system that requires transfer of the session token or the target application uses AJAX and thereby periodically \"rings home\" asynchronously using the session token" ], "x_capec_resources_required": [ "A packet sniffing tool, such as wireshark, can be used to capture session information." ], "x_capec_skills_required": { "Low": "Easy to use tools exist to automate this attack." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Make sure that HTTPS is used to communicate with the target system. Alternatively, use VPN if possible. It is important to ensure that all communication between the client and the server happens via an encrypted secure channel.", "id": "course-of-action--0002fa37-9334-41e2-971a-cc8cab6c00c4", "modified": "2020-07-30T00:00:00.000Z", "name": "coa-102-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--5b42f764-6aa4-4c32-a752-c814178db08c", "modified": "2020-07-30T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--0002fa37-9334-41e2-971a-cc8cab6c00c4", "spec_version": "2.1", "target_ref": "attack-pattern--6a99b39b-b14a-4617-8aeb-bce85979f520", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Modify the session token with each transmission and protect it with cryptography. Add the idea of request sequencing that gives the server an ability to detect replay attacks.", "id": "course-of-action--c2fe43b4-eb82-4bf6-b874-c2d9018c94fe", "modified": "2020-07-30T00:00:00.000Z", "name": "coa-102-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--66376c3d-cedd-4a2e-9fd6-1737edda9a5e", "modified": "2020-07-30T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--c2fe43b4-eb82-4bf6-b874-c2d9018c94fe", "spec_version": "2.1", "target_ref": "attack-pattern--6a99b39b-b14a-4617-8aeb-bce85979f520", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary tricks a victim into unknowingly initiating some action in one system while interacting with the UI from a seemingly completely different, usually an adversary controlled or intended, system.", "external_references": [ { "external_id": "CAPEC-103", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/103.html" }, { "external_id": "CWE-1021", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1021.html" }, { "description": "Clickjacking", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Clickjacking" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-619", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/11-Client-side_Testing/09-Testing_for_Clickjacking.html" } ], "id": "attack-pattern--ec41b2b3-a3b6-4af0-be65-69e82907dfef", "modified": "2022-09-29T00:00:00.000Z", "name": "Clickjacking", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--fc3a9a6f-66c9-4363-8ebd-9bd18725fff8" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Unreliable Execution" ], "Confidentiality": [ "Gain Privileges", "Read Data" ], "Integrity": [ "Modify Data" ] }, "x_capec_domains": [ "Social Engineering", "Software" ], "x_capec_example_instances": [ "\n A victim has an authenticated session with a site that provides an electronic payment service to transfer funds between subscribing members. At the same time, the victim receives an e-mail that appears to come from an online publication to which they subscribe with links to today's news articles. The victim clicks on one of these links and is taken to a page with the news story. There is a screen with an advertisement that appears on top of the news article with the 'skip this ad' button. Eager to read the news article, the user clicks on this button. Nothing happens. The user clicks on the button one more time and still nothing happens.\n In reality, the victim activated a hidden action control located in a transparent layer above the 'skip this ad' button. The ad screen blocking the news article made it likely that the victim would click on the 'skip this ad' button. Clicking on the button, actually initiated the transfer of $1000 from the victim's account with an electronic payment service to an adversary's account. Clicking on the 'skip this ad' button the second time (after nothing seemingly happened the first time) confirmed the transfer of funds to the electronic payment service.\n " ], "x_capec_execution_flow": "

Execution Flow

Experiment

  1. Craft a clickjacking page: The adversary utilizes web page layering techniques to try to craft a malicious clickjacking page

  2. Techniques
    The adversary leveraged iframe overlay capabilities to craft a malicious clickjacking page
    The adversary leveraged Flash file overlay capabilities to craft a malicious clickjacking page
    The adversary leveraged Silverlight overlay capabilities to craft a malicious clickjacking page
    The adversary leveraged cross-frame scripting to craft a malicious clickjacking page

Exploit

  1. Adversary lures victim to clickjacking page: Adversary utilizes some form of temptation, misdirection or coercion to lure the victim to loading and interacting with the clickjacking page in a way that increases the chances that the victim will click in the right areas.

  2. Techniques
    Lure the victim to the malicious site by sending the victim an e-mail with a URL to the site.
    Lure the victim to the malicious site by manipulating URLs on a site trusted by the victim.
    Lure the victim to the malicious site through a cross-site scripting attack.
  3. Trick victim into interacting with the clickjacking page in the desired manner: The adversary tricks the victim into clicking on the areas of the UI which contain the hidden action controls and thereby interacts with the target system maliciously with the victim's level of privilege.

  4. Techniques
    Hide action controls over very commonly used functionality.
    Hide action controls over very psychologically tempting content.
", "x_capec_extended_description": "\n While being logged in to some target system, the victim visits the adversary's malicious site which displays a UI that the victim wishes to interact with. In reality, the clickjacked page has a transparent layer above the visible UI with action controls that the adversary wishes the victim to execute. The victim clicks on buttons or other UI elements they see on the page which actually triggers the action controls in the transparent overlaying layer. Depending on what that action control is, the adversary may have just tricked the victim into executing some potentially privileged (and most certainly undesired) functionality in the target system to which the victim is authenticated. The basic problem here is that there is a dichotomy between what the victim thinks they are clicking on versus what they are actually clicking on.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--1ff813eb-5def-43a0-a4b2-ea00aede114a", "attack-pattern--b9593e93-5589-4ae9-b0e7-09fa5c3136e5", "attack-pattern--0184fd4d-9134-42c0-b073-5e614773d408" ], "x_capec_prerequisites": [ "The victim is communicating with the target application via a web based UI and not a thick client", "The victim's browser security policies allow at least one of the following JavaScript, Flash, iFrames, ActiveX, or CSS.", "The victim uses a modern browser that supports UI elements like clickable buttons (i.e. not using an old text only browser)", "The victim has an active session with the target system.", "The target system's interaction window is open in the victim's browser and supports the ability for initiating sensitive actions on behalf of the user in the target system" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "High": "Crafting the proper malicious site and luring the victim to this site are not trivial tasks." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "If using the Firefox browser, use the NoScript plug-in that will help forbid iFrames.", "id": "course-of-action--80867248-4826-45e5-84e9-99e4d1bc07c4", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-103-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--0e9b7917-b0c4-4461-93c3-7c9623a1eca8", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--80867248-4826-45e5-84e9-99e4d1bc07c4", "spec_version": "2.1", "target_ref": "attack-pattern--ec41b2b3-a3b6-4af0-be65-69e82907dfef", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Turn off JavaScript, Flash and disable CSS.", "id": "course-of-action--a7b45eac-7a77-4462-81b6-3ae5d81528e1", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-103-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--2c711dc9-c190-43bc-a5e0-02855f1b48e5", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a7b45eac-7a77-4462-81b6-3ae5d81528e1", "spec_version": "2.1", "target_ref": "attack-pattern--ec41b2b3-a3b6-4af0-be65-69e82907dfef", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "When maintaining an authenticated session with a privileged target system, do not use the same browser to navigate to unfamiliar sites to perform other activities. Finish working with the target system and logout first before proceeding to other tasks.", "id": "course-of-action--fb383db0-5a1f-42bb-ba04-6b7434508fdb", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-103-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--591f6f0b-24c7-4594-9450-5a3ca2a41ad7", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--fb383db0-5a1f-42bb-ba04-6b7434508fdb", "spec_version": "2.1", "target_ref": "attack-pattern--ec41b2b3-a3b6-4af0-be65-69e82907dfef", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker is able to cause a victim to load content into their web-browser that bypasses security zone controls and gain access to increased privileges to execute scripting code or other web objects such as unsigned ActiveX controls or applets. This is a privilege elevation attack targeted at zone-based web-browser security.", "external_references": [ { "external_id": "CAPEC-104", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/104.html" }, { "external_id": "CWE-250", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/250.html" }, { "external_id": "CWE-638", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/638.html" }, { "external_id": "CWE-285", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/285.html" }, { "external_id": "CWE-116", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/116.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" } ], "id": "attack-pattern--ebf5cbfb-36d8-4983-9267-9d17bff3817f", "modified": "2022-02-22T00:00:00.000Z", "name": "Cross Zone Scripting", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--c05fff04-b965-4a11-9c18-379dac31969f" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Read Data", "Gain Privileges", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Integrity": [ "Modify Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "There was a cross zone scripting vulnerability discovered in Skype that allowed one user to upload a video with a maliciously crafted title that contains a script. Subsequently, when the victim attempts to use the \"add video to chat\" feature on attacker's video, the script embedded in the title of the video runs with local zone privileges. Skype is using IE web controls to render internal and external HTML pages. \"Add video to chat\" uses these web controls and they are running in the Local Zone. Any user who searched for the video in Skype with the same keywords as in the title field, would have the attackers' code executing in their browser with local zone privileges to their host machine (e.g. applications on the victim's host system could be executed)." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Find systems susceptible to the attack: Find systems that contain functionality that is accessed from both the internet zone and the local zone. There needs to be a way to supply input to that functionality from the internet zone and that original input needs to be used later on a page from a local zone.

  2. Techniques
    Leverage knowledge of common local zone functionality on targeted platforms to guide attempted injection of code through relevant internet zone mechanisms. In some cases this may be due to standard system configurations enabling shared functionality between internet and local zones. The attacker can search for indicators that these standard configurations are in place.

Experiment

  1. Find the insertion point for the payload: The attacker first needs to find some system functionality or possibly another weakness in the system (e.g. susceptibility to cross site scripting) that would provide the attacker with a mechanism to deliver the payload (i.e. the code to be executed) to the user. The location from which this code is executed in the user's browser needs to be within the local machine zone.

  2. Techniques
    Finding weaknesses in functionality used by both privileged and unprivileged users.

Exploit

  1. Craft and inject the payload: Develop the payload to be executed in the higher privileged zone in the user's browser. Inject the payload and attempt to lure the victim (if possible) into executing the functionality which unleashes the payload.

  2. Techniques
    The attacker makes it as likely as possible that the vulnerable functionality into which they have injected the payload has a high likelihood of being used by the victim.
    Leverage cross-site scripting vulnerability to inject payload.
", "x_capec_extended_description": "\n In a zone-based model, pages belong to one of a set of zones corresponding to the level of privilege assigned to that page. Pages in an untrusted zone would have a lesser level of access to the system and/or be restricted in the types of executable content it was allowed to invoke. In a cross-zone scripting attack, a page that should be assigned to a less privileged zone is granted the privileges of a more trusted zone. This can be accomplished by exploiting bugs in the browser, exploiting incorrect configuration in the zone controls, through a cross-site scripting attack that causes the attackers' content to be treated as coming from a more trusted page, or by leveraging some piece of system functionality that is accessible from both the trusted and less trusted zone. This attack differs from \"Restful Privilege Escalation\" in that the latter correlates to the inadequate securing of RESTful access methods (such as HTTP DELETE) on the server, while cross-zone scripting attacks the concept of security zones as implemented by a browser.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_prerequisites": [ "The target must be using a zone-aware browser." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Medium": "Ability to craft malicious scripts or find them elsewhere and ability to identify functionality that is running web controls in the local zone and to find an injection vector into that functionality" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Disable script execution.", "id": "course-of-action--9d62b228-ecb8-4238-bc64-ef63f9d03bd5", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-104-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d53f8236-31b6-44ef-9829-434ecc01751b", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--9d62b228-ecb8-4238-bc64-ef63f9d03bd5", "spec_version": "2.1", "target_ref": "attack-pattern--ebf5cbfb-36d8-4983-9267-9d17bff3817f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure that sufficient input validation is performed for any potentially untrusted data before it is used in any privileged context or zone", "id": "course-of-action--ec174eec-0e8f-4c98-bfba-3ea29348c294", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-104-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--9a5924dc-2691-401b-b498-a96e19330e3f", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--ec174eec-0e8f-4c98-bfba-3ea29348c294", "spec_version": "2.1", "target_ref": "attack-pattern--ebf5cbfb-36d8-4983-9267-9d17bff3817f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Limit the flow of untrusted data into the privileged areas of the system that run in the higher trust zone", "id": "course-of-action--ebaa0190-21bc-40aa-835b-534ee9459aba", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-104-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ddbbaa85-70d2-430f-b63f-f76eff819192", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--ebaa0190-21bc-40aa-835b-534ee9459aba", "spec_version": "2.1", "target_ref": "attack-pattern--ebf5cbfb-36d8-4983-9267-9d17bff3817f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Limit the sites that are being added to the local machine zone and restrict the privileges of the code running in that zone to the bare minimum", "id": "course-of-action--abf207ec-5477-490e-a258-3be7ce5376f4", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-104-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--aa57cebd-a942-48ea-8782-ade74acdbddb", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--abf207ec-5477-490e-a258-3be7ce5376f4", "spec_version": "2.1", "target_ref": "attack-pattern--ebf5cbfb-36d8-4983-9267-9d17bff3817f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure proper HTML output encoding before writing user supplied data to the page", "id": "course-of-action--d46c76e7-68c6-4e46-a3a2-d7dd40b98d75", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-104-4", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--a223d161-4991-4c87-8118-ea0ee66f9f31", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--d46c76e7-68c6-4e46-a3a2-d7dd40b98d75", "spec_version": "2.1", "target_ref": "attack-pattern--ebf5cbfb-36d8-4983-9267-9d17bff3817f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "\n An adversary abuses the flexibility and discrepancies in the parsing and interpretation of HTTP Request messages by different intermediary HTTP agents (e.g., load balancer, reverse proxy, web caching proxies, application firewalls, etc.) to split a single HTTP request into multiple unauthorized and malicious HTTP requests to a back-end HTTP agent (e.g., web server).\n See CanPrecede relationships for possible consequences.\n ", "external_references": [ { "external_id": "CAPEC-105", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/105.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "external_id": "CWE-113", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/113.html" }, { "external_id": "CWE-138", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/138.html" }, { "external_id": "CWE-436", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/436.html" }, { "description": "HTTP Request Splitting", "external_id": "24", "source_name": "WASC", "url": "http://projects.webappsec.org/HTTP-Request-Splitting" }, { "description": "HTTP Response Smuggling, Beyond Security", "external_id": "REF-117", "source_name": "reference_from_CAPEC", "url": "http://www.securiteam.com/securityreviews/5CP0L0AHPC.html" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-617", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/15-Testing_for_HTTP_Splitting_Smuggling.html" }, { "description": "Robert Auger, HTTP Request Splitting, 2011, The Web Application Security Consortium", "external_id": "REF-679", "source_name": "reference_from_CAPEC", "url": "http://projects.webappsec.org/w/page/13246929/HTTP%20Request%20Splitting" } ], "id": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "modified": "2022-09-29T00:00:00.000Z", "name": "HTTP Request Splitting", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_precede_refs": [ "attack-pattern--8f665166-dfd1-40cb-91e8-b78bee1ceb6a", "attack-pattern--e244a53a-8c69-462c-8ff2-900a839d48cb", "attack-pattern--70b83583-ffe3-4e6d-b4a6-61a9b9efc346", "attack-pattern--63f43efb-7a34-4302-b3dc-8245100fdea9", "attack-pattern--bd4f8f46-1bc7-40a9-b15a-e36b7671cf5b", "attack-pattern--ce92f5b9-6228-4354-8a1b-72ad7ad3bb84" ], "x_capec_child_of_refs": [ "attack-pattern--9c983530-1927-43ca-addd-63d149cda4a7" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Execute Unauthorized Commands" ], "Confidentiality": [ "Execute Unauthorized Commands", "Gain Privileges", "Read Data" ], "Integrity": [ "Execute Unauthorized Commands", "Modify Data" ] }, "x_capec_domains": [ "Communications", "Software" ], "x_capec_example_instances": [ "\n Microsoft Internet Explorer versions 5.01 SP4 and prior, 6.0 SP2 and prior, and 7.0 contain a vulnerability that could allow an unauthenticated, remote adversary to conduct HTTP request splitting and smuggling attacks. The vulnerability is due to an input validation error in the browser that allows adversaries to manipulate certain headers to expose the browser to HTTP request splitting and smuggling attacks. Attacks may include cross-site scripting, proxy cache poisoning, and session fixation. In certain instances, an exploit could allow the adversary to bypass web application firewalls or other filtering devices. Microsoft has confirmed the vulnerability and released software updates.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey network to identify target: The adversary performs network reconnaissance by monitoring relevant traffic to identify the network path and parsing of the HTTP messages with the goal of identifying potential targets.

  2. Techniques
    Scan networks to fingerprint HTTP infrastructure and monitor HTTP traffic to identify HTTP network path with a tool such as a Network Protocol Analyzer.

Experiment

  1. Identify vulnerabilities in targeted HTTP infrastructure and technologies: The adversary sends a variety of benign/ambiguous HTTP requests to observe responses from HTTP infrastructure in order to identify differences/discrepancies in the interpretation and parsing of HTTP requests by examining supported HTTP protocol versions, HTTP headers, syntax checking and input filtering.

  2. Cause differential HTTP responses by experimenting with identified HTTP Request vulnerabilities: The adversary sends maliciously crafted HTTP requests with custom strings and embedded web scripts and objects in HTTP headers to interfere with the parsing of intermediary and back-end HTTP infrastructure, followed by normal/benign HTTP request from the adversary or a random user. The intended consequences of the malicious HTTP requests will be observed in the HTTP infrastructure response to the normal/benign HTTP request to confirm applicability of identified vulnerabilities in the adversary's plan of attack.

  3. Techniques
    Continue the monitoring of HTTP traffic.
    \n Utilize different sequences of special characters (CR - Carriage Return, LF - Line Feed, HT - Horizontal Tab, SP - Space and etc.) to bypass filtering and back-end encoding and to embed:\n \n additional HTTP Requests with their own headers\n malicious web scripts into parameters of HTTP Request headers (e.g., browser cookies like Set-Cookie or Ajax web/browser object parameters like XMLHttpRequest)\n adversary chosen encoding (e.g., UTF-7)\n \n to utilize additional special characters (e.g., > and <) filtered by the target HTTP agent.\n Note that certain special characters and character encoding may be applicable only to intermediary and front-end agents with rare configurations or that are not RFC compliant.\n
    Follow an unrecognized (sometimes a RFC compliant) HTTP header with a subsequent HTTP request to potentially cause the HTTP request to be ignored and interpreted as part of the preceding HTTP request.

Exploit

  1. Perform HTTP Request Splitting attack: Using knowledge discovered in the experiment section above, smuggle a message to cause one of the consequences.

  2. Techniques
    Leverage techniques identified in the Experiment Phase.
", "x_capec_extended_description": "\n This entails the adversary injecting malicious user input into various standard and/or user defined HTTP headers within a HTTP Request through user input of Carriage Return (CR), Line Feed (LF), Horizontal Tab (HT), Space (SP) characters as well as other valid/RFC compliant special characters and unique character encoding. This malicious user input allows for web script to be injected in HTTP headers as well as into browser cookies or Ajax web/browser object parameters like XMLHttpRequest during implementation of asynchronous requests.\n This attack is usually the result of the usage of outdated or incompatible HTTP protocol versions as well as lack of syntax checking and filtering of user input in the HTTP agents receiving HTTP messages in the path.\n This differs from CAPEC-34 HTTP Response Splitting, which is usually an attempt to compromise a client agent (e.g., web browser) by sending malicious content in HTTP responses from back-end HTTP infrastructure. HTTP Request Splitting is an attempt to compromise aback-end HTTP agentvia HTTP Request messages.\n HTTP Smuggling (CAPEC-33 and CAPEC-273) is different from HTTP Splitting due to the fact it relies upon discrepancies in the interpretation of various HTTP Headers and message sizes and not solely user input of special characters and character encoding. HTTP Smuggling was established to circumvent mitigations against HTTP Request Splitting techniques.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_peer_of_refs": [ "attack-pattern--ba694895-a0cf-494e-ace2-bf3488330b80" ], "x_capec_prerequisites": [ "An additional intermediary HTTP agent such as an application firewall or a web caching proxy between the adversary and the second agent such as a web server, that sends multiple HTTP messages over same network connection.", "Differences in the way the two HTTP agents parse and interpret HTTP requests and its headers.", "HTTP headers capable of being user-manipulated.", "HTTP agents running on HTTP/1.0 or HTTP/1.1 that allow for Keep Alive mode, Pipelined queries, and Chunked queries and responses." ], "x_capec_resources_required": [ "Tools capable of crafting malicious HTTP messages and monitoring HTTP messages responses." ], "x_capec_skills_required": { "Medium": "Possess knowledge on the exact details in the discrepancies between several targeted HTTP agents in path of an HTTP message in parsing its message structure and individual headers." }, "x_capec_status": "Stable", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: evaluate HTTP agents prior to deployment for parsing/interpretation discrepancies.", "id": "course-of-action--94b24ec6-eaed-40ba-aa65-789101ea9a55", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--4c7aff6e-7858-4273-ba44-dc920b8ff560", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--94b24ec6-eaed-40ba-aa65-789101ea9a55", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: front-end HTTP agents notice ambiguous requests.", "id": "course-of-action--64555d1a-a57e-49d9-b9f8-02c843ba1af5", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8d3cd512-2e70-4e56-a57c-507684d1f6d1", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--64555d1a-a57e-49d9-b9f8-02c843ba1af5", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: back-end HTTP agents reject ambiguous requests and close the network connection.", "id": "course-of-action--0bc589af-7ac3-4771-b1db-defb88ba61b5", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--b867b8e9-a2c3-4882-98c9-3d5fa142fddb", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--0bc589af-7ac3-4771-b1db-defb88ba61b5", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Disable reuse of back-end connections.", "id": "course-of-action--65a59d08-b52c-4c78-b802-6e65c65f02e5", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8a78056e-5c0e-44f8-800a-91b0b7178716", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--65a59d08-b52c-4c78-b802-6e65c65f02e5", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Use HTTP/2 for back-end connections.", "id": "course-of-action--948de9b9-7ad6-4bf5-8daf-f2208db360d6", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-4", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ffba3f90-bbb1-4ab0-bf6a-750ca56acabd", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--948de9b9-7ad6-4bf5-8daf-f2208db360d6", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Use the same web server software for front-end and back-end server.", "id": "course-of-action--4bd16590-2382-4a10-9712-f28b7bf84fec", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-5", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--c718be44-09e6-4be5-9a91-f792b8219ef4", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--4bd16590-2382-4a10-9712-f28b7bf84fec", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Utilize a Web Application Firewall (WAF) that has built-in mitigation to detect abnormal requests/responses.", "id": "course-of-action--5cc83b32-2b3e-41e5-94e8-2e2ea48bf660", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-6", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--260f7f64-cbe9-46c3-b7b8-2528b37847d6", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--5cc83b32-2b3e-41e5-94e8-2e2ea48bf660", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Install latest vendor security patches available for both intermediary and back-end HTTP infrastructure (i.e. proxies and web servers)", "id": "course-of-action--43085d5c-cd1e-4175-9d44-f28f8f3cc5f9", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-7", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--558063de-9f07-40ca-a209-3935e9afaddd", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--43085d5c-cd1e-4175-9d44-f28f8f3cc5f9", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Ensure that HTTP infrastructure in the chain or network path utilize a strict uniform parsing process.", "id": "course-of-action--50ea55ae-d8a8-4279-9dc9-05b6fb416b84", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-8", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--1d29447c-15a4-4126-bef5-8a3dec2bc73a", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--50ea55ae-d8a8-4279-9dc9-05b6fb416b84", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Utilize intermediary HTTP infrastructure capable of filtering and/or sanitizing user-input.", "id": "course-of-action--a2e15722-f07d-44db-b988-af501e0f1e13", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-105-9", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--4c046dff-3500-4208-a8f7-e7d170ad1267", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a2e15722-f07d-44db-b988-af501e0f1e13", "spec_version": "2.1", "target_ref": "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This attack pattern has been deprecated as it referes to an existing chain relationship between \"CAPEC-93 : Log Injection-Tampering-Forging\" and \"CAPEC-63 : Cross-Site Scripting\". Please refer to these CAPECs going forward.", "external_references": [ { "external_id": "CAPEC-106", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/106.html" } ], "id": "attack-pattern--87829d14-eece-4fa3-b36f-54cc3b2262ae", "modified": "2017-05-01T00:00:00.000Z", "name": "DEPRECATED: XSS through Log Files", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_status": "Deprecated", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Cross Site Tracing (XST) enables an adversary to steal the victim's session cookie and possibly other authentication credentials transmitted in the header of the HTTP request when the victim's browser communicates to a destination system's web server.", "external_references": [ { "external_id": "CAPEC-107", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/107.html" }, { "external_id": "CWE-693", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/693.html" }, { "external_id": "CWE-648", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/648.html" }, { "description": "Cross Site Tracing", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Cross_Site_Tracing" }, { "description": "Jeremiah Grossman, Cross-Site Tracing (XST), 2003, WhiteHat Security", "external_id": "REF-3", "source_name": "reference_from_CAPEC", "url": "http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf" } ], "id": "attack-pattern--f14acee3-770c-4154-a9b2-9eda908c6a9f", "modified": "2022-02-22T00:00:00.000Z", "name": "Cross Site Tracing", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_follow_refs": [ "attack-pattern--70b83583-ffe3-4e6d-b4a6-61a9b9efc346" ], "x_capec_child_of_refs": [ "attack-pattern--63f43efb-7a34-4302-b3dc-8245100fdea9" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Confidentiality": [ "Read Data", "Gain Privileges" ], "Integrity": [ "Modify Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n An adversary determines that a particular system is vulnerable to reflected cross-site scripting (XSS) and endeavors to leverage this weakness to steal the victim's authentication cookie. An adversary realizes that since httpOnly attribute is set on the user's cookie, it is not possible to steal it directly with their malicious script. Instead, the adversary has their script use XMLHTTP ActiveX control in the victim's IE browser to issue an HTTP TRACE to the target system's server which has HTTP TRACE enabled. The original HTTP TRACE request contains the session cookie and so does the echoed response. The adversary picks the session cookie from the body of HTTP TRACE response and ships it to the adversary. The adversary then uses the newly acquired victim's session cookie to impersonate the victim in the target system.\n In the absence of an XSS weakness on the site with which the victim is interacting, an adversary can get the script to come from the site that they control and get it to execute in the victim's browser (if they can trick the victim's into visiting their malicious website or clicking on the link that they supplies). However, in that case, due to the same origin policy protection mechanism in the browser, the adversary's malicious script cannot directly issue an HTTP TRACE request to the destination system's web server because the malicious script did not originate at that domain. An adversary will then need to find a way to exploit another weakness that would enable them to circumvent the same origin policy protection.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine if HTTP Trace is enabled: Determine if HTTP Trace is enabled at the web server with which the victim has an active session

  2. Techniques
    An adversary may issue an HTTP Trace request to the target web server and observe if the response arrives with the original request in the body of the response.

Experiment

  1. Identify mechanism to launch HTTP Trace request: The adversary attempts to force the victim to issue an HTTP Trace request to the targeted application.

  2. Techniques
    The adversary probes for cross-site scripting vulnerabilities to force the victim into issuing an HTTP Trace request.

Exploit

  1. Create a malicious script that pings the web server with HTTP TRACE request: The adversary creates a malicious script that will induce the victim's browser to issue an HTTP TRACE request to the destination system's web server. The script will further intercept the response from the web server, pick up sensitive information out of it, and forward to the site controlled by the adversary.

  2. Techniques
    The adversary's malicious script circumvents the httpOnly cookie attribute that prevents from hijacking the victim's session cookie directly using document.cookie and instead leverages the HTTP TRACE to catch this information from the header of the HTTP request once it is echoed back from the web server in the body of the HTTP TRACE response.
  3. Execute malicious HTTP Trace launching script: The adversary leverages an XSS vulnerability to force the victim to execute the malicious HTTP Trace launching script

  4. Intercept HTTP TRACE response: The adversary's script intercepts the HTTP TRACE response from teh web server, glance sensitive information from it, and forward that information to a server controlled by the adversary.

", "x_capec_extended_description": "\n The adversary uses an XSS attack to have victim's browser sent an HTTP TRACE request to a destination web server, which will proceed to return a response to the victim's web browser that contains the original HTTP request in its body. Since the HTTP header of the original HTTP TRACE request had the victim's session cookie in it, that session cookie can now be picked off the HTTP TRACE response and sent to the adversary's malicious site. XST becomes relevant when direct access to the session cookie via the \"document.cookie\" object is disabled with the use of httpOnly attribute which ensures that the cookie can be transmitted in HTTP requests but cannot be accessed in other ways. Using SSL does not protect against XST. If the system with which the victim is interacting is susceptible to XSS, an adversary can exploit that weakness directly to get their malicious script to issue an HTTP TRACE request to the destination system's web server.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_prerequisites": [ "HTTP TRACE is enabled on the web server", "The destination system is susceptible to XSS or an adversary can leverage some other weakness to bypass the same origin policy", "Scripting is enabled in the client's browser", "HTTP is used as the communication protocol between the server and the client" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Medium": "Understanding of the HTTP protocol and an ability to craft a malicious script" }, "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Administrators should disable support for HTTP TRACE at the destination's web server. Vendors should disable TRACE by default.", "id": "course-of-action--16cc4cf6-75a8-41a1-bbc7-eff92929bc02", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-107-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--92929267-6931-47a1-b4dd-3fd1d012b7cf", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--16cc4cf6-75a8-41a1-bbc7-eff92929bc02", "spec_version": "2.1", "target_ref": "attack-pattern--f14acee3-770c-4154-a9b2-9eda908c6a9f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Patch web browser against known security origin policy bypass exploits.", "id": "course-of-action--db00ffba-8edb-4b26-be69-98de08e8b45c", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-107-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--eb4b5528-6e2e-4670-bfd3-983606f61020", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--db00ffba-8edb-4b26-be69-98de08e8b45c", "spec_version": "2.1", "target_ref": "attack-pattern--f14acee3-770c-4154-a9b2-9eda908c6a9f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker uses standard SQL injection methods to inject data into the command line for execution. This could be done directly through misuse of directives such as MSSQL_xp_cmdshell or indirectly through injection of data into the database that would be interpreted as shell commands. Sometime later, an unscrupulous backend application (or could be part of the functionality of the same application) fetches the injected data stored in the database and uses this data as command line arguments without performing proper validation. The malicious data escapes that data plane by spawning new commands to be executed on the host.", "external_references": [ { "external_id": "CAPEC-108", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/108.html" }, { "external_id": "CWE-89", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/89.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-78", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/78.html" }, { "external_id": "CWE-114", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/114.html" } ], "id": "attack-pattern--89acf77d-723b-43b4-b66d-6eaafed52369", "modified": "2022-09-29T00:00:00.000Z", "name": "Command Line Execution through SQL Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_follow_refs": [ "attack-pattern--7c90bef7-530c-427b-8fb7-f9d3eda9c26a" ], "x_capec_child_of_refs": [ "attack-pattern--42acc604-a86c-46f7-bd03-6e532c02d85e" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Unreliable Execution", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Read Data", "Gain Privileges", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Integrity": [ "Modify Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n SQL injection vulnerability in Cacti 0.8.6i and earlier, when register_argc_argv is enabled, allows remote attackers to execute arbitrary SQL commands via the (1) second or (2) third arguments to cmd.php. NOTE: this issue can be leveraged to execute arbitrary commands since the SQL query results are later used in the polling_items array and popen function (CVE-2006-6799).\n Reference: https://www.cve.org/CVERecord?id=CVE-2006-6799\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Probe for SQL Injection vulnerability: The attacker injects SQL syntax into user-controllable data inputs to search unfiltered execution of the SQL syntax in a query.

Exploit

  1. Achieve arbitrary command execution through SQL Injection with the MSSQL_xp_cmdshell directive: The attacker leverages a SQL Injection attack to inject shell code to be executed by leveraging the xp_cmdshell directive.

  2. Inject malicious data in the database: Leverage SQL injection to inject data in the database that could later be used to achieve command injection if ever used as a command line argument

  3. Trigger command line execution with injected arguments: The attacker causes execution of command line functionality which leverages previously injected database content as arguments.

", "x_capec_likelihood_of_attack": "Low", "x_capec_prerequisites": [ "The application does not properly validate data before storing in the database", "Backend application implicitly trusts the data stored in the database", "Malicious data is used on the backend as a command line argument" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "High": "The attacker most likely has to be familiar with the internal functionality of the system to launch this attack. Without that knowledge, there are not many feedback mechanisms to give an attacker the indication of how to perform command injection or whether the attack is succeeding." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Disable MSSQL xp_cmdshell directive on the database", "id": "course-of-action--d1918081-1fdb-428c-b1e3-8116e054620e", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-108-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--bb697224-7fb5-464b-bb81-e9cc28732c2d", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--d1918081-1fdb-428c-b1e3-8116e054620e", "spec_version": "2.1", "target_ref": "attack-pattern--89acf77d-723b-43b4-b66d-6eaafed52369", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Properly validate the data (syntactically and semantically) before writing it to the database.", "id": "course-of-action--dad09427-e3ef-43e9-8424-cfb6594bedb2", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-108-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--06fffa19-8a09-4715-bf01-f67ec647d4fc", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--dad09427-e3ef-43e9-8424-cfb6594bedb2", "spec_version": "2.1", "target_ref": "attack-pattern--89acf77d-723b-43b4-b66d-6eaafed52369", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Do not implicitly trust the data stored in the database. Re-validate it prior to usage to make sure that it is safe to use in a given context (e.g. as a command line argument).", "id": "course-of-action--901ac737-5a15-4ef1-be33-b2e36a8c50da", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-108-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--74092c9d-86c1-49c6-82cc-08e4da29ea92", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--901ac737-5a15-4ef1-be33-b2e36a8c50da", "spec_version": "2.1", "target_ref": "attack-pattern--89acf77d-723b-43b4-b66d-6eaafed52369", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker leverages a weakness present in the database access layer code generated with an Object Relational Mapping (ORM) tool or a weakness in the way that a developer used a persistence framework to inject their own SQL commands to be executed against the underlying database. The attack here is similar to plain SQL injection, except that the application does not use JDBC to directly talk to the database, but instead it uses a data access layer generated by an ORM tool or framework (e.g. Hibernate). While most of the time code generated by an ORM tool contains safe access methods that are immune to SQL injection, sometimes either due to some weakness in the generated code or due to the fact that the developer failed to use the generated access methods properly, SQL injection is still possible.", "external_references": [ { "external_id": "CAPEC-109", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/109.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-89", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/89.html" }, { "external_id": "CWE-564", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/564.html" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-4", "source_name": "reference_from_CAPEC", "url": "http://www.owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/05.7-Testing_for_ORM_Injection" } ], "id": "attack-pattern--f0e32d0e-9580-4b79-95e0-6e3b99bf6e45", "modified": "2021-06-24T00:00:00.000Z", "name": "Object Relational Mapping Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--42acc604-a86c-46f7-bd03-6e532c02d85e" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Unreliable Execution", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Read Data", "Gain Privileges", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Integrity": [ "Modify Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "When using Hibernate, it is possible to use the session.find() method to run queries against the database. This is an overloaded method that provides facilities to perform binding between the supplied user data and place holders in the statically defined query. However, it is also possible to use the session.find() method without using any of these query binding overloads, hence effectively concatenating the user supplied data with rest of the SQL query, resulting in a possibility for SQL injection. While the framework may provide mechanisms to use methods immune to SQL injections, it may also contain ways that are not immune that may be chosen by the developer." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine Persistence Framework Used: An attacker tries to determine what persistence framework is used by the application in order to leverage a weakness in the generated data access layer code or a weakness in a way that the data access layer may have been used by the developer.

  2. Techniques
    An attacker provides input to the application in an attempt to induce an error screen that reveals a stack trace that gives an indication of the automated data access layer used. Or an attacker may simply make some educated guesses and assume, for instance, that Hibernate is used and try to craft an attack from there.
  3. Probe for ORM Injection vulnerabilities: The attacker injects ORM syntax into user-controllable data inputs of the application to determine if it is possible modify data query structure and content.

Exploit

  1. Perform SQL Injection through the generated data access layer: An attacker proceeds to exploit a weakness in the generated data access methods that does not properly separate control plane from the data plan, or potentially a particular way in which developer might have misused the generated code, to modify the structure of the executed SQL queries and/or inject entirely new SQL queries.

  2. Techniques
    An attacker uses normal SQL injection techniques and adjusts them to reflect the type of data access layer generation framework used by the application.
", "x_capec_likelihood_of_attack": "Low", "x_capec_prerequisites": [ "An application uses data access layer generated by an ORM tool or framework", "An application uses user supplied data in queries executed against the database", "The separation between data plane and control plane is not ensured, through either developer error or an underlying weakness in the data access layer code generation framework" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Medium": "Knowledge of general SQL injection techniques and subtleties of the ORM framework is needed" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Remember to understand how to use the data access methods generated by the ORM tool / framework properly in a way that would leverage the built-in security mechanisms of the framework", "id": "course-of-action--fc27d692-9337-4434-bf26-3b58ffd7ab42", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-109-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--44a7c013-8531-4a05-b8fc-d49a59a09123", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--fc27d692-9337-4434-bf26-3b58ffd7ab42", "spec_version": "2.1", "target_ref": "attack-pattern--f0e32d0e-9580-4b79-95e0-6e3b99bf6e45", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure to keep up to date with security relevant updates to the persistence framework used within your application.", "id": "course-of-action--d19890d1-f3ad-4940-851c-62729cd33bf5", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-109-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d021b9f3-7bd8-4d7c-8e30-933d2cff35f6", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--d19890d1-f3ad-4940-851c-62729cd33bf5", "spec_version": "2.1", "target_ref": "attack-pattern--f0e32d0e-9580-4b79-95e0-6e3b99bf6e45", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attack of this type exploits a Web server's decision to take action based on filename or file extension. Because different file types are handled by different server processes, misclassification may force the Web server to take unexpected action, or expected actions in an unexpected sequence. This may cause the server to exhaust resources, supply debug or system data to the attacker, or bind an attacker to a remote process.", "external_references": [ { "external_id": "CAPEC-11", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/11.html" }, { "external_id": "CWE-430", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/430.html" }, { "description": "Masquerading: Space after Filename", "external_id": "T1036.006", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1036/006" }, { "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley", "external_id": "REF-1", "source_name": "reference_from_CAPEC" }, { "description": "Orion Application Server JSP Source Disclosure Vulnerability (Bugtraq ID: 17204), SecurityFocus", "external_id": "REF-6", "source_name": "reference_from_CAPEC", "url": "http://www.securityfocus.com/bid/17204/info" } ], "id": "attack-pattern--74a4fb36-83cb-4851-b09c-370f1a408523", "modified": "2022-09-29T00:00:00.000Z", "name": "Cause Web Server Misclassification", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--95afb65f-ece7-4511-85a3-d7bfb9973022" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Confidentiality": [ "Read Data", "Gain Privileges" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n J2EE application servers are supposed to execute Java Server Pages (JSP). There have been disclosure issues relating to Orion Application Server, where an attacker that appends either a period (.) or space characters to the end of a legitimate Http request, then the server displays the full source code in the attackers' web browser.\n http://victim.site/login.jsp.\n Since remote data and directory access may be accessed directly from the JSP, this is a potentially very serious issue.\n [REF-6]\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Footprint file input vectors: Manually or using an automated tool, an attacker searches for all input locations where a user has control over the filenames or MIME types of files submitted to the web server.

  2. Techniques
    Attacker manually crawls application to identify file inputs
    Attacker uses an automated tool to crawl application identify file inputs
    Attacker manually assesses strength of access control protecting native application files from user control
    Attacker explores potential for submitting files directly to the web server via independently constructed HTTP Requests

Experiment

  1. File misclassification shotgunning: An attacker makes changes to file extensions and MIME types typically processed by web servers and looks for abnormal behavior.

  2. Techniques
    Attacker submits files with switched extensions (e.g. .php on a .jsp file) to web server.
    Attacker adds extra characters (e.g. adding an extra . after the file extension) to filenames of files submitted to web server.
  3. File misclassification sniping: Understanding how certain file types are processed by web servers, an attacker crafts varying file payloads and modifies their file extension or MIME type to be that of the targeted type to see if the web server is vulnerable to misclassification of that type.

  4. Techniques
    Craft a malicious file payload, modify file extension to the targeted file type and submit it to the web server.
    Craft a malicious file payload, modify its associated MIME type to the targeted file type and submit it to the web server.

Exploit

  1. Disclose information: The attacker, by manipulating a file extension or MIME type is able to make the web server return raw information (not executed).

  2. Techniques
    Manipulate the file names that are explicitly sent to the server.
    Manipulate the MIME sent in order to confuse the web server.
", "x_capec_extended_description": "\n This type of vulnerability has been found in many widely used servers including IIS, Lotus Domino, and Orion. The attacker's job in this case is straightforward, standard communication protocols and methods are used and are generally appended with malicious information at the tail end of an otherwise legitimate request. The attack payload varies, but it could be special characters like a period or simply appending a tag that has a special meaning for operations on the server side like .jsp for a java application server. The essence of this attack is that the attacker deceives the server into executing functionality based on the name of the request, i.e. login.jsp, not the contents.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_prerequisites": [ "Web server software must rely on file name or file extension for processing.", "The attacker must be able to make HTTP requests to the web server." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Low": "To modify file name or file extension", "Medium": "To use misclassification to force the Web server to disclose configuration information, source, or binary data" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Server routines should be determined by content not determined by filename or file extension.", "id": "course-of-action--a2f0dd07-332e-41f6-951c-fa0994e302de", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-11-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--22b26b12-1eff-40ab-95ab-8de26f22b487", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a2f0dd07-332e-41f6-951c-fa0994e302de", "spec_version": "2.1", "target_ref": "attack-pattern--74a4fb36-83cb-4851-b09c-370f1a408523", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker modifies the parameters of the SOAP message that is sent from the service consumer to the service provider to initiate a SQL injection attack. On the service provider side, the SOAP message is parsed and parameters are not properly validated before being used to access a database in a way that does not use parameter binding, thus enabling the attacker to control the structure of the executed SQL query. This pattern describes a SQL injection attack with the delivery mechanism being a SOAP message.", "external_references": [ { "external_id": "CAPEC-110", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/110.html" }, { "external_id": "CWE-89", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/89.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" } ], "id": "attack-pattern--7c90bef7-530c-427b-8fb7-f9d3eda9c26a", "modified": "2021-06-24T00:00:00.000Z", "name": "SQL Injection through SOAP Parameter Tampering", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_follow_refs": [ "attack-pattern--8e3a14fd-870a-4286-866d-805107c7d922" ], "x_capec_can_precede_refs": [ "attack-pattern--89acf77d-723b-43b4-b66d-6eaafed52369" ], "x_capec_child_of_refs": [ "attack-pattern--42acc604-a86c-46f7-bd03-6e532c02d85e" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Availability": [ "Unreliable Execution", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Read Data", "Gain Privileges", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Integrity": [ "Modify Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "An attacker uses a travel booking system that leverages SOAP communication between the client and the travel booking service. An attacker begins to tamper with the outgoing SOAP messages by modifying their parameters to include characters that would break a dynamically constructed SQL query. They notice that the system fails to respond when these malicious inputs are injected in certain parameters transferred in a SOAP message. The attacker crafts a SQL query that modifies their payment amount in the travel system's database and passes it as one of the parameters . A backend batch payment system later fetches the payment amount from the database (the modified payment amount) and sends to the credit card processor, enabling the attacker to purchase the airfare at a lower price. An attacker needs to have some knowledge of the system's database, perhaps by exploiting another weakness that results in information disclosure." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Detect Incorrect SOAP Parameter Handling: The attacker tampers with the SOAP message parameters and looks for indications that the tampering caused a change in behavior of the targeted application.

  2. Techniques
    The attacker tampers with the SOAP message parameters by injecting some special characters such as single quotes, double quotes, semi columns, etc. The attacker observes system behavior.

Experiment

  1. Probe for SQL Injection vulnerability: The attacker injects SQL syntax into vulnerable SOAP parameters identified during the Explore phase to search for unfiltered execution of the SQL syntax in a query.

Exploit

  1. Inject SQL via SOAP Parameters: The attacker injects SQL via SOAP parameters identified as vulnerable during Explore phase to launch a first or second order SQL injection attack.

  2. Techniques
    An attacker performs a SQL injection attack via the usual methods leveraging SOAP parameters as the injection vector. An attacker has to be careful not to break the XML parser at the service provider which may prevent the payload getting through to the SQL query. The attacker may also look at the WSDL for the web service (if available) to better understand what is expected by the service provider.
", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "SOAP messages are used as a communication mechanism in the system", "SOAP parameters are not properly validated at the service provider", "The service provider does not properly utilize parameter binding when building SQL queries" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "High": "If the attacker has to perform Blind SQL Injection", "Medium": "If the attacker is able to gain good understanding of the system's database schema" }, "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Properly validate and sanitize/reject user input at the service provider.", "id": "course-of-action--b95cd192-7218-4771-85a6-6d6359c63b34", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-110-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--a3a9b355-487c-4cfd-904c-055007648f78", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b95cd192-7218-4771-85a6-6d6359c63b34", "spec_version": "2.1", "target_ref": "attack-pattern--7c90bef7-530c-427b-8fb7-f9d3eda9c26a", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure that prepared statements or other mechanism that enables parameter binding is used when accessing the database in a way that would prevent the attackers' supplied data from controlling the structure of the executed query.", "id": "course-of-action--b4508bd0-d52b-4b82-b35c-ba342a6d024b", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-110-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ecba2a2e-f73d-4937-9f4e-d8650932e41a", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b4508bd0-d52b-4b82-b35c-ba342a6d024b", "spec_version": "2.1", "target_ref": "attack-pattern--7c90bef7-530c-427b-8fb7-f9d3eda9c26a", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "At the database level, ensure that the database user used by the application in a particular context has the minimum needed privileges to the database that are needed to perform the operation. When possible, run queries against pre-generated views rather than the tables directly.", "id": "course-of-action--58d0cbaa-2fda-4d1c-bbe1-8405dc79acbb", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-110-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--c0ab5963-a4b2-4dab-aeee-924ec742c54a", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--58d0cbaa-2fda-4d1c-bbe1-8405dc79acbb", "spec_version": "2.1", "target_ref": "attack-pattern--7c90bef7-530c-427b-8fb7-f9d3eda9c26a", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker targets a system that uses JavaScript Object Notation (JSON) as a transport mechanism between the client and the server (common in Web 2.0 systems using AJAX) to steal possibly confidential information transmitted from the server back to the client inside the JSON object by taking advantage of the loophole in the browser's Same Origin Policy that does not prohibit JavaScript from one website to be included and executed in the context of another website.", "external_references": [ { "external_id": "CAPEC-111", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/111.html" }, { "external_id": "CWE-345", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/345.html" }, { "external_id": "CWE-346", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/346.html" }, { "external_id": "CWE-352", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/352.html" } ], "id": "attack-pattern--5b2d7149-c0f3-4b42-9c10-febe7dfd3ea5", "modified": "2022-09-29T00:00:00.000Z", "name": "JSON Hijacking (aka JavaScript Hijacking)", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--c727c058-2c9d-4021-a1ec-81dd030dea59" ], "x_capec_consequences": { "Confidentiality": [ "Read Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n Gmail service was found to be vulnerable to a JSON Hijacking attack that enabled an attacker to get the contents of the victim's address book. An attacker could send an e-mail to the victim's Gmail account (which ensures that the victim is logged in to Gmail when they receive it) with a link to the attackers' malicious site. If the victim clicked on the link, a request (containing the victim's authenticated session cookie) would be sent to the Gmail servers to fetch the victim's address book. This functionality is typically used by the Gmail service to get this data on the fly so that the user can be provided a list of contacts from which to choose the recipient of the e-mail.\n When the JSON object with the contacts came back, it was loaded into the JavaScript space via a script tag on the attackers' malicious page. Since the JSON object was never assigned to a local variable (which would have prevented a script from a different domain accessing it due to the browser's same origin policy), another mechanism was needed to access the data that it contained. That mechanism was overwriting the internal array constructor with the attackers' own constructor in order to gain access to the JSON object's contents. These contents could then be transferred to the site controlled by the attacker.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Understand How to Request JSON Responses from the Target System: An attacker first explores the target system to understand what URLs need to be provided to it in order to retrieve JSON objects that contain information of interest to the attacker.

  2. Techniques
    An attacker creates an account with the target system and observes requests and the corresponding JSON responses from the server. Understanding how to properly elicit responses from the server is crucial to the attackers' ability to craft the exploit.

Experiment

  1. [Craft a malicious website]The attacker crafts a malicious website to which they plan to lure the victim who is using the vulnerable target system. The malicious website does two things:\n \n 1. Contains a hook that intercepts incoming JSON objects, reads their contents and forwards the contents to the server controlled by the attacker (via a new XMLHttpRequest).\n 2. Uses the script tag with a URL in the source that requests a JSON object from the vulnerable target system. Once the JSON object is transmitted to the victim's browser, the malicious code (as described in step 1) intercepts that JSON object, steals its contents, and forwards to the attacker.\n \n This attack step leverages the fact that the same origin policy in the browser does not protect JavaScript originating from one domain from setting up an environment to intercept and access JSON objects arriving from a completely different domain.\n

Exploit

  1. Launch JSON hijack: An attacker lures the victim to the malicious website or leverages other means to get their malicious code executing in the victim's browser. Once that happens, the malicious code makes a request to the victim target system to retrieve a JSON object with sensitive information. The request includes the victim's session cookie if the victim is logged in.

  2. Techniques
    An attacker employs a myriad of standard techniques to get the victim to visit their malicious site or by some other means get the attackers' malicious code executing in the victim's browser.
", "x_capec_extended_description": "\n An attacker gets the victim to visit their malicious page that contains a script tag whose source points to the vulnerable system with a URL that requests a response from the server containing a JSON object with possibly confidential information. The malicious page also contains malicious code to capture the JSON object returned by the server before any other processing on it can take place, typically by overriding the JavaScript function used to create new objects. This hook allows the malicious code to get access to the creation of each object and transmit the possibly sensitive contents of the captured JSON object to the attackers' server.\n There is nothing in the browser's security model to prevent the attackers' malicious JavaScript code (originating from attacker's domain) to set up an environment (as described above) to intercept a JSON object response (coming from the vulnerable target system's domain), read its contents and transmit to the attackers' controlled site. The same origin policy protects the domain object model (DOM), but not the JSON.\n ", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "JSON is used as a transport mechanism between the client and the server", "The target server cannot differentiate real requests from forged requests", "The JSON object returned from the server can be accessed by the attackers' malicious code via a script tag" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Medium": "Once this attack pattern is developed and understood, creating an exploit is not very complex.The attacker needs to have knowledge of the URLs that need to be accessed on the target system to request the JSON objects." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure that server side code can differentiate between legitimate requests and forged requests. The solution is similar to protection against Cross Site Request Forger (CSRF), which is to use a hard to guess random nonce (that is unique to the victim's session with the server) that the attacker has no way of knowing (at least in the absence of other weaknesses). Each request from the client to the server should contain this nonce and the server should reject all requests that do not contain the nonce.", "id": "course-of-action--f87b1daf-edf4-4fb0-bc8e-a042d0c2d43e", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-111-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--739ac6c9-0bf4-4b2b-80c8-407013b2e9fa", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f87b1daf-edf4-4fb0-bc8e-a042d0c2d43e", "spec_version": "2.1", "target_ref": "attack-pattern--5b2d7149-c0f3-4b42-9c10-febe7dfd3ea5", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "On the client side, the system's design could make it difficult to get access to the JSON object content via the script tag. Since the JSON object is never assigned locally to a variable, it cannot be readily modified by the attacker before being used by a script tag. For instance, if while(1) was added to the beginning of the JavaScript returned by the server, trying to access it with a script tag would result in an infinite loop. On the other hand, legitimate client side code can remove the while(1) statement after which the JavaScript can be evaluated. A similar result can be achieved by surrounding the returned JavaScript with comment tags, or using other similar techniques (e.g. wrapping the JavaScript with HTML tags).", "id": "course-of-action--00b17d50-1313-4019-81d7-ac8cfda42439", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-111-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--0b7db0b5-d1c4-48fa-aef5-d966935fecc5", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--00b17d50-1313-4019-81d7-ac8cfda42439", "spec_version": "2.1", "target_ref": "attack-pattern--5b2d7149-c0f3-4b42-9c10-febe7dfd3ea5", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Make the URLs in the system used to retrieve JSON objects unpredictable and unique for each user session.", "id": "course-of-action--9085eee9-2f7e-4b3b-bbea-dbc4f0d0044f", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-111-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ce344fe2-2f03-491f-a465-a5e7578ca3aa", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--9085eee9-2f7e-4b3b-bbea-dbc4f0d0044f", "spec_version": "2.1", "target_ref": "attack-pattern--5b2d7149-c0f3-4b42-9c10-febe7dfd3ea5", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure that to the extent possible, no sensitive data is passed from the server to the client via JSON objects. JavaScript was never intended to play that role, hence the same origin policy does not adequate address this scenario.", "id": "course-of-action--ec731c48-7174-45e1-85e5-b82150c25e2f", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-111-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ccdf4c19-dc2a-46b4-b444-b78da5d0300f", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--ec731c48-7174-45e1-85e5-b82150c25e2f", "spec_version": "2.1", "target_ref": "attack-pattern--5b2d7149-c0f3-4b42-9c10-febe7dfd3ea5", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "In this attack, some asset (information, functionality, identity, etc.) is protected by a finite secret value. The attacker attempts to gain access to this asset by using trial-and-error to exhaustively explore all the possible secret values in the hope of finding the secret (or a value that is functionally equivalent) that will unlock the asset.", "external_references": [ { "external_id": "CAPEC-112", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/112.html" }, { "external_id": "CWE-330", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/330.html" }, { "external_id": "CWE-326", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/326.html" }, { "external_id": "CWE-521", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/521.html" }, { "description": "Brute Force", "external_id": "T1110", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1110" }, { "description": "Brute Force", "external_id": "11", "source_name": "WASC", "url": "http://projects.webappsec.org/Brute-Force" }, { "description": "Brute force attack", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Brute_force_attack" } ], "id": "attack-pattern--7b423196-9de6-400f-91de-a1f26b3f19f1", "modified": "2022-09-29T00:00:00.000Z", "name": "Brute Force", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Confidentiality": [ "Read Data", "Gain Privileges" ] }, "x_capec_domains": [ "Software" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine secret testing procedure: Determine how a potential guess of the secret may be tested. This may be accomplished by comparing some manipulation of the secret to a known value, use of the secret to manipulate some known set of data and determining if the result displays specific characteristics (for example, turning cryptotext into plaintext), or by submitting the secret to some external authority and having the external authority respond as to whether the value was the correct secret. Ideally, the attacker will want to determine the correctness of their guess independently since involvement of an external authority is usually slower and can provide an indication to the defender that a brute-force attack is being attempted.

  2. Techniques
    Determine if there is a way to parallelize the attack. Most brute force attacks can take advantage of parallel techniques by dividing the search space among available resources, thus dividing the average time to success by the number of resources available. If there is a single choke point, such as a need to check answers with an external authority, the attackers' position is significantly degraded.
  3. Reduce search space: Find ways to reduce the secret space. The smaller the attacker can make the space they need to search for the secret value, the greater their chances for success. There are a great many ways in which the search space may be reduced.

  4. Techniques
    If possible, determine how the secret was selected. If the secret was determined algorithmically (such as by a random number generator) the algorithm may have patterns or dependencies that reduce the size of the secret space. If the secret was created by a human, behavioral factors may, if not completely reduce the space, make some types of secrets more likely than others. (For example, humans may use the same secrets in multiple places or use secrets that look or sound familiar for ease of recall.)
    If the secret was chosen algorithmically, cryptanalysis can be applied to the algorithm to discover patterns in this algorithm. (This is true even if the secret is not used in cryptography.) Periodicity, the need for seed values, or weaknesses in the generator all can result in a significantly smaller secret space.
    If the secret was chosen by a person, social engineering and simple espionage can indicate patterns in their secret selection. If old secrets can be learned (and a target may feel they have little need to protect a secret that has been replaced) hints as to their selection preferences can be gleaned. These can include character substitutions a target employs, patterns in sources (dates, famous phrases, music lyrics, family members, etc.). Once these patterns have been determined, the initial efforts of a brute-force attack can focus on these areas.
    Some algorithmic techniques for secret selection may leave indicators that can be tested for relatively easily and which could then be used to eliminate large areas of the search space for consideration. For example, it may be possible to determine that a secret does or does not start with a given character after a relatively small number of tests. Alternatively, it might be possible to discover the length of the secret relatively easily. These discoveries would significantly reduce the search space, thus increasing speed with which the attacker discovers the secret.
  5. Expand victory conditions: It is sometimes possible to expand victory conditions. For example, the attacker might not need to know the exact secret but simply needs a value that produces the same result using a one-way function. While doing this does not reduce the size of the search space, the presence of multiple victory conditions does reduce the likely amount of time that the attacker will need to explore the space before finding a workable value.

Exploit

  1. Gather information so attack can be performed independently.: If possible, gather the necessary information so a successful search can be determined without consultation of an external authority. This can be accomplished by capturing cryptotext (if the goal is decoding the text) or the encrypted password dictionary (if the goal is learning passwords).

", "x_capec_extended_description": "\n Examples of secrets can include, but are not limited to, passwords, encryption keys, database lookup keys, and initial values to one-way functions. The key factor in this attack is the attackers' ability to explore the possible secret space rapidly. This, in turn, is a function of the size of the secret space and the computational power the attacker is able to bring to bear on the problem. If the attacker has modest resources and the secret space is large, the challenge facing the attacker is intractable. Assuming a finite secret space, a brute force attack will eventually succeed. The defender must rely on making sure that the time and resources necessary to do so will exceed the value of the information.\n ", "x_capec_parent_of_refs": [ "attack-pattern--86a5e931-7f53-46fe-b6f0-c88498f6557f", "attack-pattern--8d88a81c-bde9-4fb3-acbe-901c783d6427" ], "x_capec_prerequisites": [ "The attacker must be able to determine when they have successfully guessed the secret. As such, one-time pads are immune to this type of attack since there is no way to determine when a guess is correct." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. Ultimately, the speed with which an attacker discovers a secret is directly proportional to the computational resources the attacker has at their disposal. This attack method is resource expensive: having large amounts of computational power do not guarantee timely success, but having only minimal resources makes the problem intractable against all but the weakest secret selection procedures." ], "x_capec_skills_required": { "Low": "The attack simply requires basic scripting ability to automate the exploration of the search space. More sophisticated attackers may be able to use more advanced methods to reduce the search space and increase the speed with which the secret is located." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Select a provably large secret space for selection of the secret. Provably large means that the procedure by which the secret is selected does not have artifacts that significantly reduce the size of the total secret space.", "id": "course-of-action--6863b358-1e48-48e0-b084-56c5cc603fb4", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-112-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--cc237ef1-9283-4680-b8d0-9ef4a0cf8147", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--6863b358-1e48-48e0-b084-56c5cc603fb4", "spec_version": "2.1", "target_ref": "attack-pattern--7b423196-9de6-400f-91de-a1f26b3f19f1", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use a secret space that is well known and with no known patterns that may reduce functional size.", "id": "course-of-action--aaaca7bd-c8e3-477f-8457-0dd2fa58b41c", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-112-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--c266ae48-e3db-42b8-b3ce-57936242fa62", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--aaaca7bd-c8e3-477f-8457-0dd2fa58b41c", "spec_version": "2.1", "target_ref": "attack-pattern--7b423196-9de6-400f-91de-a1f26b3f19f1", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Do not provide the means for an attacker to determine success independently. This forces the attacker to check their guesses against an external authority, which can slow the attack and warn the defender. This mitigation may not be possible if testing material must appear externally, such as with a transmitted cryptotext.", "id": "course-of-action--4cce5adb-bd38-46a1-b756-9c85290ad8e7", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-112-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--720b2d97-9125-482c-b7b3-c17acce30c06", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--4cce5adb-bd38-46a1-b756-9c85290ad8e7", "spec_version": "2.1", "target_ref": "attack-pattern--7b423196-9de6-400f-91de-a1f26b3f19f1", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary manipulates the use or processing of an interface (e.g. Application Programming Interface (API) or System-on-Chip (SoC)) resulting in an adverse impact upon the security of the system implementing the interface. This can allow the adversary to bypass access control and/or execute functionality not intended by the interface implementation, possibly compromising the system which integrates the interface. Interface manipulation can take on a number of forms including forcing the unexpected use of an interface or the use of an interface in an unintended way.", "external_references": [ { "external_id": "CAPEC-113", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/113.html" }, { "external_id": "CWE-1192", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1192.html" } ], "id": "attack-pattern--f4186110-0c20-42fa-bc6f-d0ff9f700f91", "modified": "2021-06-24T00:00:00.000Z", "name": "Interface Manipulation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_domains": [ "Software", "Hardware" ], "x_capec_example_instances": [ "An adversary may make a request to an application that leverages a non-standard API that is known to incorrectly validate 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.", "API methods not intended for production, such as debugging or testing APIs, may not be disabled when deploying in a production environment. As a result, dangerous functionality can be exposed within the production environment, which an adversary can leverage to execute additional attacks.", "SoC components contain insufficient identifiers, which allows an adversary to reset the device at will or read sensitive data from the device." ], "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--b289975f-c5e0-4d27-bf50-5937bfd02cfd", "attack-pattern--a0fc32ad-ef32-44d5-9937-5968f5e7b78c", "attack-pattern--f90601a6-9e18-4e96-804d-01a4f4ea30f2", "attack-pattern--d0db3641-ee0d-4897-89aa-3c85c69377a5" ], "x_capec_prerequisites": [ "The target system must expose interface functionality in a manner that can be discovered and manipulated by an adversary. This may require reverse engineering the interface or decrypting/de-obfuscating client-server exchanges." ], "x_capec_resources_required": [ "The requirements vary depending upon the nature of the interface. For example, application-layer APIs related to the processing of the HTTP protocol may require one or more of the following: an Adversary-In-The-Middle (CAPEC-94) proxy, a web browser, or a programming/scripting language." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker obtains unauthorized access to an application, service or device either through knowledge of the inherent weaknesses of an authentication mechanism, or by exploiting a flaw in the authentication scheme's implementation. In such an attack an authentication mechanism is functioning but a carefully controlled sequence of events causes the mechanism to grant access to the attacker.", "external_references": [ { "external_id": "CAPEC-114", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/114.html" }, { "external_id": "CWE-287", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/287.html" }, { "external_id": "CWE-1244", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1244.html" }, { "description": "Abuse Elevation Control Mechanism", "external_id": "T1548", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1548" } ], "id": "attack-pattern--2e2ed1f8-f736-4fc9-83bc-308595fc6e03", "modified": "2022-02-22T00:00:00.000Z", "name": "Authentication Abuse", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_domains": [ "Software", "Hardware" ], "x_capec_extended_description": "\n This attack may exploit assumptions made by the target's authentication procedures, such as assumptions regarding trust relationships or assumptions regarding the generation of secret values. This attack differs from Authentication Bypass attacks in that Authentication Abuse allows the attacker to be certified as a valid user through illegitimate means, while Authentication Bypass allows the user to access protected material without ever being certified as an authenticated user. This attack does not rely on prior sessions established by successfully authenticating users, as relied upon for the \"Exploitation of Session Variables, Resource IDs and other Trusted Credentials\" attack patterns.\n ", "x_capec_parent_of_refs": [ "attack-pattern--229804f0-b017-4a26-937b-159da866bf9a" ], "x_capec_prerequisites": [ "An authentication mechanism or subsystem implementing some form of authentication such as passwords, digest authentication, security certificates, etc. which is flawed in some way." ], "x_capec_resources_required": [ "A client application, command-line access to a binary, or scripting language capable of interacting with the authentication mechanism." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker gains access to application, service, or device with the privileges of an authorized or privileged user by evading or circumventing an authentication mechanism. The attacker is therefore able to access protected data without authentication ever having taken place.", "external_references": [ { "external_id": "CAPEC-115", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/115.html" }, { "external_id": "CWE-287", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/287.html" }, { "description": "Abuse Elevation Control Mechanism", "external_id": "T1548", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1548" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-598", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/04-Authentication_Testing/04-Testing_for_Bypassing_Authentication_Schema.html" } ], "id": "attack-pattern--8f665166-dfd1-40cb-91e8-b78bee1ceb6a", "modified": "2022-02-22T00:00:00.000Z", "name": "Authentication Bypass", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_can_follow_refs": [ "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "attack-pattern--ae3f2c33-9018-442e-9cc3-24d65c7f4974", "attack-pattern--d845a25b-b140-438c-91d7-30b709bb6e18", "attack-pattern--ba694895-a0cf-494e-ace2-bf3488330b80" ], "x_capec_domains": [ "Software" ], "x_capec_extended_description": "\n This refers to an attacker gaining access equivalent to an authenticated user without ever going through an authentication procedure. This is usually the result of the attacker using an unexpected access procedure that does not go through the proper checkpoints where authentication should occur. For example, a web site might assume that all users will click through a given link in order to get to secure material and simply authenticate everyone that clicks the link. However, an attacker might be able to reach secured web content by explicitly entering the path to the content rather than clicking through the authentication link, thereby avoiding the check entirely. This attack pattern differs from other authentication attacks in that attacks of this pattern avoid authentication entirely, rather than faking authentication by exploiting flaws or by stealing credentials from legitimate users.\n ", "x_capec_parent_of_refs": [ "attack-pattern--1bc4fd64-65a6-41d4-ac68-8e3692eabe29", "attack-pattern--4abd48c8-f737-45db-bd7b-97d989ebd471", "attack-pattern--f231b993-ed39-40cf-adfb-9828ddcfc642", "attack-pattern--8c806dfa-b8ca-45f9-9f97-09e4b5c1157b", "attack-pattern--00268a75-3243-477d-9166-8c78fddf6df6" ], "x_capec_prerequisites": [ "An authentication mechanism or subsystem implementing some form of authentication such as passwords, digest authentication, security certificates, etc." ], "x_capec_resources_required": [ "A client application, such as a web browser, or a scripting language capable of interacting with the target." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary actively probes the target in a manner that is designed to solicit information that could be leveraged for malicious purposes.", "external_references": [ { "external_id": "CAPEC-116", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/116.html" }, { "external_id": "CWE-200", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/200.html" }, { "external_id": "CWE-1243", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1243.html" } ], "id": "attack-pattern--913426fa-ea1f-43b0-8492-1d363ea109d6", "modified": "2022-09-29T00:00:00.000Z", "name": "Excavation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_can_precede_refs": [ "attack-pattern--ff3cf9fc-c308-4571-8a01-ecae629a49c1" ], "x_capec_consequences": { "Confidentiality": [ "Read Data" ] }, "x_capec_domains": [ "Supply Chain", "Software", "Physical Security", "Hardware" ], "x_capec_extended_description": "\n This is achieved by exploring the target via ordinary interactions for the purpose of gathering intelligence about the target, or by sending data that is syntactically invalid or non-standard in an attempt to produce a response that contains the desired data. As a result of these interactions, the adversary is able to obtain information from the target that aids the attacker in making inferences about its security, configuration, or potential vulnerabilities. Examplar exchanges with the target may trigger unhandled exceptions or verbose error messages that reveal information like stack traces, configuration information, path information, or database design. This type of attack also includes the manipulation of query strings in a URI to produce invalid SQL queries, or by trying alternative path values in the hope that the server will return useful information.\n ", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--797f4b4e-371a-4d06-9e98-5cccb8a7ebc1", "attack-pattern--49132d37-44e8-458c-a06e-0e5b9ac9bbd6", "attack-pattern--191fbdab-d3b3-4ffd-8829-51331c20eaa7", "attack-pattern--52103765-d380-42fc-aa4d-a8b24615548a", "attack-pattern--a8b4faf6-2e52-434f-95a4-df5f9bdc985a" ], "x_capec_prerequisites": [ "An adversary requires some way of interacting with the system." ], "x_capec_resources_required": [ "A tool, such as an Adversary in the Middle (CAPEC-94) Proxy or a fuzzer, that is capable of generating and injecting custom inputs to be used in the attack." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Minimize error/response output to only what is necessary for functional use or corrective language.", "id": "course-of-action--b173381f-e049-4ddb-b252-3cd3e9860f04", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-116-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--fd9e7627-0b39-4948-90a3-d4d2f54da8d8", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b173381f-e049-4ddb-b252-3cd3e9860f04", "spec_version": "2.1", "target_ref": "attack-pattern--913426fa-ea1f-43b0-8492-1d363ea109d6", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Remove potentially sensitive information that is not necessary for the application's functionality.", "id": "course-of-action--f79678b2-0a62-418a-907b-5e73dd03e3bc", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-116-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--1a976d5b-38ec-4508-8329-3a6a82d44d97", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f79678b2-0a62-418a-907b-5e73dd03e3bc", "spec_version": "2.1", "target_ref": "attack-pattern--913426fa-ea1f-43b0-8492-1d363ea109d6", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary monitors data streams to or from the target for information gathering purposes. This attack may be undertaken to solely gather sensitive information or to support a further attack against the target. This attack pattern can involve sniffing network traffic as well as other types of data streams (e.g. radio). The adversary can attempt to initiate the establishment of a data stream or passively observe the communications as they unfold. In all variants of this attack, the adversary is not the intended recipient of the data stream. In contrast to other means of gathering information (e.g., targeting data leaks), the adversary must actively position themself so as to observe explicit data channels (e.g. network traffic) and read the content. However, this attack differs from a Adversary-In-the-Middle (CAPEC-94) attack, as the adversary does not alter the content of the communications nor forward data to the intended recipient.", "external_references": [ { "external_id": "CAPEC-117", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/117.html" }, { "external_id": "CWE-319", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/319.html" } ], "id": "attack-pattern--bdc2219a-ebe0-4372-90b8-841dd7bd4c8e", "modified": "2021-06-24T00:00:00.000Z", "name": "Interception", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Confidentiality": [ "Read Data" ] }, "x_capec_domains": [ "Communications", "Software", "Physical Security" ], "x_capec_likelihood_of_attack": "Low", "x_capec_parent_of_refs": [ "attack-pattern--bdcdc784-d891-4ca8-847b-38ddca37a6ec", "attack-pattern--48f21dcd-2490-49c6-9690-1cb586b201f4", "attack-pattern--94e596d2-6844-4031-80c3-8522642aaff8" ], "x_capec_prerequisites": [ "The target must transmit data over a medium that is accessible to the adversary." ], "x_capec_resources_required": [ "The adversary must have the necessary technology to intercept information passing between the nodes of a network. For TCP/IP, the capability to run tcpdump, ethereal, etc. can be useful. Depending upon the data being targeted the technological requirements will change." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Leverage encryption to encode the transmission of data thus making it accessible only to authorized parties.", "id": "course-of-action--2e4a2bce-d5ab-429d-91d4-b26c22f7f02b", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-117-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--859073fb-487f-4a31-b50e-4cceb762f731", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--2e4a2bce-d5ab-429d-91d4-b26c22f7f02b", "spec_version": "2.1", "target_ref": "attack-pattern--bdc2219a-ebe0-4372-90b8-841dd7bd4c8e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This pattern of attack is defined by the selection of messages distributed via multicast or public information channels that are intended for another client by determining the parameter value assigned to that client. This attack allows the adversary to gain access to potentially privileged information, and to possibly perpetrate other attacks through the distribution means by impersonation. If the channel/message being manipulated is an input rather than output mechanism for the system, (such as a command bus), this style of attack could be used to change the adversary's identifier to more a privileged one.", "external_references": [ { "external_id": "CAPEC-12", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/12.html" }, { "external_id": "CWE-201", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/201.html" }, { "external_id": "CWE-306", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/306.html" } ], "id": "attack-pattern--d9904019-98fa-4beb-ae5a-f667e516269e", "modified": "2022-02-22T00:00:00.000Z", "name": "Choosing Message Identifier", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--861cfb48-ba7c-4568-86c9-43ac6985ac65" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges" ], "Confidentiality": [ "Read Data", "Gain Privileges" ] }, "x_capec_domains": [ "Communications" ], "x_capec_example_instances": [ "A certain B2B interface on a large application codes for messages passed over an MQSeries queue, on a single \"Partners\" channel. Messages on that channel code for their client destination based on a partner_ID field, held by each message. That field is a simple integer. Adversaries having access to that channel, perhaps a particularly nosey partner, can simply choose to store messages of another partner's ID and read them as they desire. Note that authentication does not prevent a partner from leveraging this attack on other partners. It simply disallows adversaries without partner status from conducting this attack." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine Nature of Messages: Determine the nature of messages being transported as well as the identifiers to be used as part of the attack

Experiment

  1. Authenticate: If required, authenticate to the distribution channel

  2. Identify Known Client Identifiers: If any particular client's information is available through a control channel available to all users, the adversary will discover particular identifiers for targeted clients by observing this channel, or requesting client information through this channel.

  3. Change Message Identifier: Adversaries with client access connecting to output channels could change their channel identifier and see someone else's (perhaps more privileged) data.

", "x_capec_likelihood_of_attack": "High", "x_capec_peer_of_refs": [ "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228" ], "x_capec_prerequisites": [ "Information and client-sensitive (and client-specific) data must be present through a distribution channel available to all users.", "Distribution means must code (through channel, message identifiers, or convention) message destination in a manner visible within the distribution means itself (such as a control channel) or in the messages themselves." ], "x_capec_resources_required": [ "The adversary needs the ability to control source code or application configuration responsible for selecting which message/channel id is absorbed from the public distribution means." ], "x_capec_skills_required": { "Low": "All the adversary needs to discover is the format of the messages on the channel/distribution means and the particular identifier used within the messages." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "\n Associate some ACL (in the form of a token) with an authenticated user which they provide middleware. The middleware uses this token as part of its channel/message selection for that client, or part of a discerning authorization decision for privileged channels/messages.\n The purpose is to architect the system in a way that associates proper authentication/authorization with each channel/message.\n ", "id": "course-of-action--a9ab8b72-4e44-4c81-bf44-e366ff5503d4", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-12-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--3057788f-a10c-42ba-86f8-673bdaa92ba0", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a9ab8b72-4e44-4c81-bf44-e366ff5503d4", "spec_version": "2.1", "target_ref": "attack-pattern--d9904019-98fa-4beb-ae5a-f667e516269e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Re-architect system input/output channels as appropriate to distribute self-protecting data. That is, encrypt (or otherwise protect) channels/messages so that only authorized readers can see them.", "id": "course-of-action--dcc7f9fa-ae3e-4b43-ae71-e3c7a72ea187", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-12-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8d1d83e8-400f-438d-a941-c0692758395f", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--dcc7f9fa-ae3e-4b43-ae71-e3c7a72ea187", "spec_version": "2.1", "target_ref": "attack-pattern--d9904019-98fa-4beb-ae5a-f667e516269e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "The adversary utilizes a repeating of the encoding process for a set of characters (that is, character encoding a character encoding of a character) to obfuscate the payload of a particular request. This may allow the adversary to bypass filters that attempt to detect illegal characters or strings, such as those that might be used in traversal or injection attacks. Filters may be able to catch illegal encoded strings, but may not catch doubly encoded strings. For example, a dot (.), often used in path traversal attacks and therefore often blocked by filters, could be URL encoded as %2E. However, many filters recognize this encoding and would still block the request. In a double encoding, the % in the above URL encoding would be encoded again as %25, resulting in %252E which some filters might not catch, but which could still be interpreted as a dot (.) by interpreters on the target.", "external_references": [ { "external_id": "CAPEC-120", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/120.html" }, { "external_id": "CWE-173", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/173.html" }, { "external_id": "CWE-172", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/172.html" }, { "external_id": "CWE-177", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/177.html" }, { "external_id": "CWE-181", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/181.html" }, { "external_id": "CWE-183", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/183.html" }, { "external_id": "CWE-184", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/184.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-697", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/697.html" }, { "external_id": "CWE-692", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/692.html" } ], "id": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "modified": "2022-09-29T00:00:00.000Z", "name": "Double Encoding", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--a1af7c24-25cb-46e5-a27b-ed316e1f91ce" ], "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n Double Enconding Attacks can often be used to bypass Cross Site Scripting (XSS) detection and execute XSS attacks.:\n %253Cscript%253Ealert('This is an XSS Attack')%253C%252Fscript%253E\n Since <, <, and / are often sued to perform web attacks, these may be captured by XSS filters. The use of double encouding prevents the filter from working as intended and allows the XSS to bypass dectection. This can allow an adversary to execute malicious code.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the application for user-controllable inputs: Using a browser, an automated tool or by inspecting the application, an attacker records all entry points to the application.

  2. Techniques
    Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make special note of any links that include parameters in the URL.
    Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.
    Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.
    Manually inspect the application to find entry points.

Experiment

  1. Probe entry points to locate vulnerabilities: Try double-encoding for parts of the input in order to try to get past the filters. For instance, by double encoding certain characters in the URL (e.g. dots and slashes) an adversary may try to get access to restricted resources on the web server or force browse to protected pages (thus subverting the authorization service). An adversary can also attempt other injection style attacks using this attack pattern: command injection, SQL injection, etc.

  2. Techniques
    Try to use double-encoding to bypass validation routines.
", "x_capec_likelihood_of_attack": "Low", "x_capec_prerequisites": [ "The target's filters must fail to detect that a character has been doubly encoded but its interpreting engine must still be able to convert a doubly encoded character to an un-encoded character.", "The application accepts and decodes URL string request.", "The application performs insufficient filtering/canonicalization on the URLs." ], "x_capec_resources_required": [ "Tools that automate encoding of data can assist the adversary in generating encoded strings." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Assume all input is malicious. Create an allowlist that defines all valid input to the software system based on the requirements specifications. Input that does not match against the allowlist should not be permitted to enter into the system. Test your decoding process against malicious input.", "id": "course-of-action--001320df-5e57-4ed3-bcf8-7e79dfe846aa", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-120-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--44b07350-79d0-449c-b510-54552ac1b8ac", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--001320df-5e57-4ed3-bcf8-7e79dfe846aa", "spec_version": "2.1", "target_ref": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Be aware of the threat of alternative method of data encoding and obfuscation technique such as IP address encoding.", "id": "course-of-action--1b63d492-1270-4630-97ef-521ac9d05eec", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-120-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--cfa73c3f-86a6-476f-aab5-335c5f41f2ac", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--1b63d492-1270-4630-97ef-521ac9d05eec", "spec_version": "2.1", "target_ref": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "When client input is required from web-based forms, avoid using the \"GET\" method to submit data, as the method causes the form data to be appended to the URL and is easily manipulated. Instead, use the \"POST method whenever possible.", "id": "course-of-action--95ef6587-c787-4051-b664-b5e8ca753c20", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-120-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6e482c72-7993-4ddf-8fca-22de8312c642", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--95ef6587-c787-4051-b664-b5e8ca753c20", "spec_version": "2.1", "target_ref": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Any security checks should occur after the data has been decoded and validated as correct data format. Do not repeat decoding process, if bad character are left after decoding process, treat the data as suspicious, and fail the validation process.", "id": "course-of-action--3833d761-4a54-4ed3-994b-c7c76c465ae0", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-120-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ba444e1f-3d84-4501-b9c6-09b06a824f96", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3833d761-4a54-4ed3-994b-c7c76c465ae0", "spec_version": "2.1", "target_ref": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Refer to the RFCs to safely decode URL.", "id": "course-of-action--1f048925-3094-483c-abf2-c5efe689193a", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-120-4", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--11ad9490-5c2d-4430-8ecc-b0740ebc3c54", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--1f048925-3094-483c-abf2-c5efe689193a", "spec_version": "2.1", "target_ref": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Regular expression can be used to match safe URL patterns. However, that may discard valid URL requests if the regular expression is too restrictive.", "id": "course-of-action--1890182c-6989-4e34-bfb2-92b223bcae0c", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-120-5", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--0f1b0725-8a4f-49f1-9954-eb67b0182990", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--1890182c-6989-4e34-bfb2-92b223bcae0c", "spec_version": "2.1", "target_ref": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "There are tools to scan HTTP requests to the server for valid URL such as URLScan from Microsoft (http://www.microsoft.com/technet/security/tools/urlscan.mspx).", "id": "course-of-action--24852297-758a-489f-b2c9-a27cbfbb938e", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-120-6", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--be25410a-e03c-4307-88da-60d4e71e7f4d", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--24852297-758a-489f-b2c9-a27cbfbb938e", "spec_version": "2.1", "target_ref": "attack-pattern--fb506d15-6cda-4669-8fc2-fb41061099d9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "\n An adversary exploits a sample, demonstration, test, or debug interface that is unintentionally enabled on a production system, with the goal of gleaning information or leveraging functionality that would otherwise be unavailable.\n ", "external_references": [ { "external_id": "CAPEC-121", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/121.html" }, { "external_id": "CWE-489", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/489.html" }, { "external_id": "CWE-1209", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1209.html" }, { "external_id": "CWE-1259", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1259.html" }, { "external_id": "CWE-1267", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1267.html" }, { "external_id": "CWE-1270", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1270.html" }, { "external_id": "CWE-1294", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1294.html" }, { "external_id": "CWE-1295", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1295.html" }, { "external_id": "CWE-1296", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1296.html" }, { "external_id": "CWE-1302", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1302.html" }, { "external_id": "CWE-1313", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1313.html" }, { "description": "Swarup Bhunia, Mark M. Tehranipoor, The Hardware Trojan War: Attacks, Myths, and Defenses, 2017--11---30, Springer", "external_id": "REF-588", "source_name": "reference_from_CAPEC" }, { "description": "Boyang Du, Matteo Sonza Reorda, Luca Sterpone, Luis Parra, Marta Portela-Garcia, Almudena Lindoso, Luis Entrena, Exploiting the debug interface to support on-line test of control flow errors, 2013--07---08, Institute of Electrical and Electronics Engineers (IEEE)", "external_id": "REF-589", "source_name": "reference_from_CAPEC", "url": "https://ieeexplore.ieee.org/document/6604058/authors#authors" } ], "id": "attack-pattern--b289975f-c5e0-4d27-bf50-5937bfd02cfd", "modified": "2023-01-24T00:00:00.000Z", "name": "Exploit Non-Production Interfaces", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--f4186110-0c20-42fa-bc6f-d0ff9f700f91" ], "x_capec_consequences": { "Access_Control": [ "Modify Data", "Alter Execution Logic" ], "Authentication": [ "Gain Privileges", "Bypass Protection Mechanism" ], "Authorization": [ "Read Data", "Execute Unauthorized Commands" ], "Confidentiality": [ "Gain Privileges", "Bypass Protection Mechanism", "Read Data", "Execute Unauthorized Commands" ], "Integrity": [ "Modify Data", "Alter Execution Logic" ] }, "x_capec_domains": [ "Software", "Hardware" ], "x_capec_example_instances": [ "\n Some software applications include application programming interfaces (APIs) that are intended to allow an administrator to test and refine their domain. These APIs are typically disabled once a system enters a production environment, but may be left in an insecure state due to a configuration error or mismanagement.\n ", "\n Many hardware systems leverage bits typically reserved for future functionality for testing and debugging purposes. If these reserved bits remain enabled in a production environment, it could allow an adversary to induce unwanted/unsupported behavior in the hardware.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine Vulnerable Interface: An adversary explores a target system for sample or test interfaces that have not been disabled by a system administrator and which may be exploitable by the adversary.

  2. Techniques
    If needed, the adversary explores an organization's network to determine if any specific systems of interest exist.

Exploit

  1. Leverage Test Interface to Execute Attacks: Once an adversary has discovered a system with a non-production interface, the interface is leveraged to exploit the system and/or conduct various attacks.

  2. Techniques
    The adversary can leverage the sample or test interface to conduct several types of attacks such as Adversary-in-the-Middle attacks (CAPEC-94), keylogging, Cross Site Scripting (XSS), hardware manipulation attacks, and more.
", "x_capec_extended_description": "\n Non-production interfaces are insecure by default and should not be resident on production systems, since they may reveal sensitive information or functionality that should not be known to end-users. However, such interfaces may be unintentionally left enabled on a production system due to configuration errors, supply chain mismanagement, or other pre-deployment activities.\n Ultimately, failure to properly disable non-production interfaces, in a production environment, may expose a great deal of diagnostic information or functionality to an adversary, which can be utilized to further refine their attack. Moreover, many non-production interfaces do not have adequate security controls or may not have undergone rigorous testing since they were not intended for use in production environments. As such, they may contain many flaws and vulnerabilities that could allow an adversary to severely disrupt a target.\n ", "x_capec_likelihood_of_attack": "Low", "x_capec_parent_of_refs": [ "attack-pattern--80649f3c-d2f3-4703-9e78-e096673a7517" ], "x_capec_prerequisites": [ "The target must have configured non-production interfaces and failed to secure or remove them when brought into a production environment." ], "x_capec_resources_required": [ "For some interfaces, the adversary will need that appropriate client application or hardware that interfaces with the interface. Other non-production interfaces can be executed using simple tools, such as web browsers or console windows. In some cases, an adversary may need to be able to authenticate to the target before it can access the vulnerable interface." ], "x_capec_skills_required": { "High": "Exploiting non-production interfaces requires significant skill and knowledge about the potential non-production interfaces left enabled in production." }, "x_capec_status": "Stable", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure that production systems do not contain non-production interfaces and that these interfaces are only used in development environments.", "id": "course-of-action--36f8b35a-423d-47cf-85a2-766434c723ab", "modified": "2023-01-24T00:00:00.000Z", "name": "coa-121-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--faafe0e8-4e6c-4405-a59d-22f1ce919834", "modified": "2023-01-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--36f8b35a-423d-47cf-85a2-766434c723ab", "spec_version": "2.1", "target_ref": "attack-pattern--b289975f-c5e0-4d27-bf50-5937bfd02cfd", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary is able to exploit features of the target that should be reserved for privileged users or administrators but are exposed to use by lower or non-privileged accounts. Access to sensitive information and functionality must be controlled to ensure that only authorized users are able to access these resources.", "external_references": [ { "external_id": "CAPEC-122", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/122.html" }, { "external_id": "CWE-269", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/269.html" }, { "external_id": "CWE-732", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/732.html" }, { "external_id": "CWE-1317", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1317.html" }, { "description": "Abuse Elevation Control Mechanism", "external_id": "T1548", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1548" } ], "id": "attack-pattern--fd669b7d-0e79-473c-9808-a860dfb0c871", "modified": "2022-09-29T00:00:00.000Z", "name": "Privilege Abuse", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_can_precede_refs": [ "attack-pattern--f231b993-ed39-40cf-adfb-9828ddcfc642" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Authorization": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Gain Privileges", "Bypass Protection Mechanism" ], "Confidentiality": [ "Read Data" ], "Integrity": [ "Modify Data" ] }, "x_capec_domains": [ "Software", "Hardware" ], "x_capec_example_instances": [ "\n Improperly configured account privileges allowed unauthorized users on a hospital's network to access the medical records for over 3,000 patients. Thus compromising data integrity and confidentiality in addition to HIPAA violations.\n " ], "x_capec_extended_description": "\n If access control mechanisms are absent or misconfigured, a user may be able to access resources that are intended only for higher level users. An adversary may be able to exploit this to utilize a less trusted account to gain information and perform activities reserved for more trusted accounts.\n This attack differs from privilege escalation and other privilege stealing attacks in that the adversary never actually escalates their privileges but instead is able to use a lesser degree of privilege to access resources that should be (but are not) reserved for higher privilege accounts. Likewise, the adversary does not exploit trust or subvert systems - all control functionality is working as configured but the configuration does not adequately protect sensitive resources at an appropriate level.\n ", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--92cdcd3d-d734-4442-afc3-4599f261498b", "attack-pattern--9ad2c2eb-9939-4590-9683-2e789692d262", "attack-pattern--aac17300-6cdd-4f50-82c3-da5a01d225ac", "attack-pattern--d9717514-c621-49cd-b8e1-fd7cc1daa8d1", "attack-pattern--c195a0a3-62fc-4def-9702-8938440cc9a7" ], "x_capec_prerequisites": [ "The target must have misconfigured their access control mechanisms such that sensitive information, which should only be accessible to more trusted users, remains accessible to less trusted users.", "The adversary must have access to the target, albeit with an account that is less privileged than would be appropriate for the targeted resources." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. The ability to access the target is required." ], "x_capec_skills_required": { "Low": "Adversary can leverage privileged features they already have access to without additional effort or skill. Adversary is only required to have access to an account with improper priveleges." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configure account privileges such privileged/administrator functionality is not exposed to non-privileged/lower accounts.", "id": "course-of-action--556e719c-c102-427d-b5b4-11a4dab62f8e", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-122-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--957019cc-30e1-4d46-9ee9-1b20f9b69653", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--556e719c-c102-427d-b5b4-11a4dab62f8e", "spec_version": "2.1", "target_ref": "attack-pattern--fd669b7d-0e79-473c-9808-a860dfb0c871", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary manipulates an application's interaction with a buffer in an attempt to read or modify data they shouldn't have access to. Buffer attacks are distinguished in that it is the buffer space itself that is the target of the attack rather than any code responsible for interpreting the content of the buffer. In virtually all buffer attacks the content that is placed in the buffer is immaterial. Instead, most buffer attacks involve retrieving or providing more input than can be stored in the allocated buffer, resulting in the reading or overwriting of other unintended program memory.", "external_references": [ { "external_id": "CAPEC-123", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/123.html" }, { "external_id": "CWE-119", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/119.html" } ], "id": "attack-pattern--476ca631-2695-43f8-82f6-83c06a07ae36", "modified": "2019-04-04T00:00:00.000Z", "name": "Buffer Manipulation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Availability": [ "Unreliable Execution (A buffer manipulation attack often results in a crash of the application due to the corruption of memory.)" ], "Confidentiality": [ "Execute Unauthorized Commands (If constructed properly, a buffer manipulation attack can be used to contol the execution of the application leading to any number of negative consequenses.)", "Modify Data (If constructed properly, a buffer manipulation attack can be used to contol the execution of the application leading to any number of negative consequenses.)", "Read Data (If constructed properly, a buffer manipulation attack can be used to contol the execution of the application leading to any number of negative consequenses.)" ] }, "x_capec_domains": [ "Software" ], "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--77e51461-7843-411c-a90e-852498957f76", "attack-pattern--40eddae8-4d7d-4fc3-b220-1c9706f01a96" ], "x_capec_prerequisites": [ "The adversary must identify a programmatic means for interacting with a buffer, such as vulnerable C code, and be able to provide input to this interaction." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "To help protect an application from buffer manipulation attacks, a number of potential mitigations can be leveraged. Before starting the development of the application, consider using a code language (e.g., Java) or compiler that limits the ability of developers to act beyond the bounds of a buffer. If the chosen language is susceptible to buffer related issues (e.g., C) then consider using secure functions instead of those vulnerable to buffer manipulations. If a potentially dangerous function must be used, make sure that proper boundary checking is performed. Additionally, there are often a number of compiler-based mechanisms (e.g., StackGuard, ProPolice and the Microsoft Visual Studio /GS flag) that can help identify and protect against potential buffer issues. Finally, there may be operating system level preventative functionality that can be applied.", "id": "course-of-action--69611262-87d4-4bba-8db4-068c40577c4c", "modified": "2019-04-04T00:00:00.000Z", "name": "coa-123-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--b2e47286-34b7-484e-a95b-67f1b21ae24b", "modified": "2019-04-04T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--69611262-87d4-4bba-8db4-068c40577c4c", "spec_version": "2.1", "target_ref": "attack-pattern--476ca631-2695-43f8-82f6-83c06a07ae36", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary exploits a resource shared between multiple applications, an application pool or hardware pin multiplexing to affect behavior. Resources may be shared between multiple applications or between multiple threads of a single application. Resource sharing is usually accomplished through mutual access to a single memory location or multiplexed hardware pins. If an adversary can manipulate this shared resource (usually by co-opting one of the applications or threads) the other applications or threads using the shared resource will often continue to trust the validity of the compromised shared resource and use it in their calculations. This can result in invalid trust assumptions, corruption of additional data through the normal operations of the other users of the shared resource, or even cause a crash or compromise of the sharing applications.", "external_references": [ { "external_id": "CAPEC-124", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/124.html" }, { "external_id": "CWE-1189", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1189.html" }, { "external_id": "CWE-1331", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1331.html" } ], "id": "attack-pattern--d5e0c12f-6086-491d-86e5-e10a14d1f947", "modified": "2020-12-17T00:00:00.000Z", "name": "Shared Resource Manipulation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_domains": [ "Software", "Hardware" ], "x_capec_prerequisites": [ "The target applications, threads or functions must share resources between themselves.", "The adversary must be able to manipulate some piece of the shared resource either directly or indirectly and the other users of the data must accept the changed data as valid. Usually this requires that the adversary be able to compromise one of the sharing applications or threads in order to manipulate the shared data." ], "x_capec_resources_required": [ "None: The attacker does not need any specialized resources to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary consumes the resources of a target by rapidly engaging in a large number of interactions with the target. This type of attack generally exposes a weakness in rate limiting or flow. When successful this attack prevents legitimate users from accessing the service and can cause the target to crash. This attack differs from resource depletion through leaks or allocations in that the latter attacks do not rely on the volume of requests made to the target but instead focus on manipulation of the target's operations. The key factor in a flooding attack is the number of requests the adversary can make in a given period of time. The greater this number, the more likely an attack is to succeed against a given target.", "external_references": [ { "external_id": "CAPEC-125", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/125.html" }, { "external_id": "CWE-404", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/404.html" }, { "external_id": "CWE-770", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/770.html" }, { "description": "Network Denial of Service: Direct Network Flood", "external_id": "T1498.001", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1498/001" }, { "description": "Endpoint Denial of Service", "external_id": "T1499", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1499" }, { "description": "Denial of Service", "external_id": "10", "source_name": "WASC", "url": "http://projects.webappsec.org/Denial-of-Service" }, { "description": "Traffic flood", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Traffic_flood" } ], "id": "attack-pattern--6854fe89-0829-429f-a95c-89e77ab6c8ed", "modified": "2022-09-29T00:00:00.000Z", "name": "Flooding", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Availability": [ "Unreliable Execution (A successful flooding attack compromises the availability of the target system's service by exhausting its available resources.)", "Resource Consumption (A successful flooding attack compromises the availability of the target system's service by exhausting its available resources.)" ] }, "x_capec_domains": [ "Communications", "Software" ], "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--172e2289-333b-4796-9afd-94140c9480e8", "attack-pattern--bb4d350b-c500-45d6-97c2-c0adccbe6bad", "attack-pattern--2e017307-7bab-419b-972c-8dae9e089572", "attack-pattern--d43c7ffa-16a5-4eb9-8c29-3391cc7ff269", "attack-pattern--f30a7c37-4d87-41d2-a103-c995948076f3", "attack-pattern--e68b5623-7a7a-45f8-896f-12b38bedc838", "attack-pattern--ad3913be-6ca6-48e6-9e3b-7b67e4162612", "attack-pattern--c3ce7043-a2cc-4686-945c-cf3b605b7c90" ], "x_capec_prerequisites": [ "Any target that services requests is vulnerable to this attack on some level of scale." ], "x_capec_resources_required": [ "A script or program capable of generating more requests than the target can handle, or a network or cluster of objects all capable of making simultaneous requests." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure that protocols have specific limits of scale configured.", "id": "course-of-action--55bca578-149c-4129-a003-3c2d5bd54b5b", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-125-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--22178117-f064-4303-8985-7fd9ee2fe9d8", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--55bca578-149c-4129-a003-3c2d5bd54b5b", "spec_version": "2.1", "target_ref": "attack-pattern--6854fe89-0829-429f-a95c-89e77ab6c8ed", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Specify expectations for capabilities and dictate which behaviors are acceptable when resource allocation reaches limits.", "id": "course-of-action--c8dd811c-2eb5-418e-aeda-80170abad702", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-125-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--f0a57d15-98a3-44ab-9dee-7451762bc00b", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--c8dd811c-2eb5-418e-aeda-80170abad702", "spec_version": "2.1", "target_ref": "attack-pattern--6854fe89-0829-429f-a95c-89e77ab6c8ed", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Uniformly throttle all requests in order to make it more difficult to consume resources more quickly than they can again be freed.", "id": "course-of-action--6c5ef0e0-77e5-40d3-85bf-7c50693c211d", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-125-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--22e10e44-9d16-4de8-9376-289ccde29247", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--6c5ef0e0-77e5-40d3-85bf-7c50693c211d", "spec_version": "2.1", "target_ref": "attack-pattern--6854fe89-0829-429f-a95c-89e77ab6c8ed", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary uses path manipulation methods to exploit insufficient input validation of a target to obtain access to data that should be not be retrievable by ordinary well-formed requests. A typical variety of this attack involves specifying a path to a desired file together with dot-dot-slash characters, resulting in the file access API or function traversing out of the intended directory structure and into the root file system. By replacing or modifying the expected path information the access function or API retrieves the file desired by the attacker. These attacks either involve the attacker providing a complete path to a targeted file or using control characters (e.g. path separators (/ or \\) and/or dots (.)) to reach desired directories or files.", "external_references": [ { "external_id": "CAPEC-126", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/126.html" }, { "external_id": "CWE-22", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/22.html" }, { "description": "Path Traversal", "external_id": "33", "source_name": "WASC", "url": "http://projects.webappsec.org/Path-Traversal" }, { "description": "Path Traversal", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Path_Traversal" }, { "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley", "external_id": "REF-1", "source_name": "reference_from_CAPEC" }, { "description": "OWASP Testing Guide (v4), 2010, The Open Web Application Security Project (OWASP)", "external_id": "REF-9", "source_name": "reference_from_CAPEC", "url": "https://www.owasp.org/index.php/Testing_for_Path_Traversal_(OWASP-AZ-001)" }, { "description": "WASC Threat Classification 2.0, 2010, The Web Application Security Consortium (WASC)", "external_id": "REF-10", "source_name": "reference_from_CAPEC", "url": "http://projects.webappsec.org/w/page/13246952/Path-Traversal" } ], "id": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "modified": "2022-09-29T00:00:00.000Z", "name": "Path Traversal", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_alternate_terms": [ "Directory Traversal" ], "x_capec_can_precede_refs": [ "attack-pattern--f231b993-ed39-40cf-adfb-9828ddcfc642" ], "x_capec_child_of_refs": [ "attack-pattern--71d31712-9174-4433-8e4f-8520a3ec1249" ], "x_capec_consequences": { "Availability": [ "Execute Unauthorized Commands (The attacker may be able to create or overwrite critical files that are used to execute code, such as programs or libraries.)", "Unreliable Execution (The attacker may be able to overwrite, delete, or corrupt unexpected critical files such as programs, libraries, or important data. This may prevent the software from working at all and in the case of a protection mechanisms such as authentication, it has the potential to lockout every user of the software.)" ], "Confidentiality": [ "Execute Unauthorized Commands (The attacker may be able to create or overwrite critical files that are used to execute code, such as programs or libraries.)", "Read Data (The attacker may be able read the contents of unexpected files and expose sensitive data. If the targeted file is used for a security mechanism, then the attacker may be able to bypass that mechanism. For example, by reading a password file, the attacker could conduct brute force password guessing attacks in order to break into an account on the system.)" ], "Integrity": [ "Execute Unauthorized Commands (The attacker may be able to create or overwrite critical files that are used to execute code, such as programs or libraries.)", "Modify Data (The attacker may be able to overwrite or create critical files, such as programs, libraries, or important data. If the targeted file is used for a security mechanism, then the attacker may be able to bypass that mechanism. For example, appending a new account at the end of a password file may allow an attacker to bypass authentication.)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n An example of using path traversal to attack some set of resources on a web server is to use a standard HTTP request\n http://example/../../../../../etc/passwd\n From an attacker point of view, this may be sufficient to gain access to the password file on a poorly protected system. If the attacker can list directories of critical resources then read only access is not sufficient to protect the system.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Fingerprinting of the operating system: In order to perform a valid path traversal, the attacker needs to know what the underlying OS is so that the proper file seperator is used.

  2. Techniques
    Port mapping. Identify ports that the system is listening on, and attempt to identify inputs and protocol types on those ports.
    TCP/IP Fingerprinting. The attacker uses various software to make connections or partial connections and observe idiosyncratic responses from the operating system. Using those responses, they attempt to guess the actual operating system.
    Induce errors to find informative error messages
  3. Survey the Application to Identify User-controllable Inputs: The attacker surveys the target application to identify all user-controllable file inputs

Experiment

  1. Vary inputs, looking for malicious results: Depending on whether the application being exploited is a remote or local one, the attacker crafts the appropriate malicious input containing the path of the targeted file or other file system control syntax to be passed to the application

Exploit

  1. Manipulate files accessible by the application: The attacker may steal information or directly manipulate files (delete, copy, flush, etc.)

", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "attack-pattern--1a84fe86-379b-497e-ae66-290e797409f4", "attack-pattern--36fd3642-e601-4392-b25b-48df2fdecf62" ], "x_capec_prerequisites": [ "The attacker must be able to control the path that is requested of the target.", "The target must fail to adequately sanitize incoming paths" ], "x_capec_resources_required": [ "The ability to manually manipulate path information either directly through a client application relative to the service or application or via a proxy application." ], "x_capec_skills_required": { "Low": "Simple command line attacks or to inject the malicious payload in a web page.", "Medium": "Customizing attacks to bypass non trivial filters in the application." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Configure the access control correctly.", "id": "course-of-action--49faa4e3-77fa-4b56-8186-be9d4302e09a", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--990d82cc-54c9-4536-8db1-9e1e4d3c1162", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--49faa4e3-77fa-4b56-8186-be9d4302e09a", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Enforce principle of least privilege.", "id": "course-of-action--10e0bdfb-cc84-4788-8d10-225b6e61f135", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--fc0b9ea2-577b-4cae-a52b-606ae9ea8f84", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--10e0bdfb-cc84-4788-8d10-225b6e61f135", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Execute programs with constrained privileges, so parent process does not open up further vulnerabilities. Ensure that all directories, temporary directories and files, and memory are executing with limited privileges to protect against remote execution.", "id": "course-of-action--59bcc683-a1e5-4b88-9821-ddb734003114", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--594c4c5a-1764-41b8-91aa-dc032c6ae92a", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--59bcc683-a1e5-4b88-9821-ddb734003114", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Input validation. Assume that user inputs are malicious. Utilize strict type, character, and encoding enforcement.", "id": "course-of-action--6a928417-72f9-4429-951c-8dcaca5edc6d", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--f114c5f3-cfbd-4300-b255-e4bfeb5672be", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--6a928417-72f9-4429-951c-8dcaca5edc6d", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Proxy communication to host, so that communications are terminated at the proxy, sanitizing the requests before forwarding to server host.", "id": "course-of-action--da440d05-dc0e-4bfa-8490-7178ae419336", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-4", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--9efb30cd-a0e5-4666-998f-c9119096f678", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--da440d05-dc0e-4bfa-8490-7178ae419336", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Run server interfaces with a non-root account and/or utilize chroot jails or other configuration techniques to constrain privileges even if attacker gains some limited access to commands.", "id": "course-of-action--16c78c78-dace-4fe3-ac4a-aaf188d14af5", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-5", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--2aeb9107-ab93-4c87-b9c5-a7eabd78976b", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--16c78c78-dace-4fe3-ac4a-aaf188d14af5", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Host integrity monitoring for critical files, directories, and processes. The goal of host integrity monitoring is to be aware when a security issue has occurred so that incident response and other forensic activities can begin.", "id": "course-of-action--3c433a52-7784-4abd-b404-41fc8a423886", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-6", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--f7a2a574-4587-4e1f-83a1-69fa413c6fbb", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3c433a52-7784-4abd-b404-41fc8a423886", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Perform input validation for all remote content, including remote and user-generated content.", "id": "course-of-action--b3379e8f-995d-4df7-be15-7861c104b55c", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-7", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--a6a7d0d3-2377-4fba-ba62-ba4c605a8206", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b3379e8f-995d-4df7-be15-7861c104b55c", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Perform testing such as pen-testing and vulnerability scanning to identify directories, programs, and interfaces that grant direct access to executables.", "id": "course-of-action--8fb32cf0-80fd-4e8b-91c6-0908041d5b6e", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-8", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--99e79d18-12bf-4362-a63b-bbc4e4c958a5", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--8fb32cf0-80fd-4e8b-91c6-0908041d5b6e", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Use indirect references rather than actual file names.", "id": "course-of-action--f972cf8f-5c89-4e6c-87ad-8eb40c32883b", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-9", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--233f668e-d39a-47dd-8b8e-51d1e88576f6", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f972cf8f-5c89-4e6c-87ad-8eb40c32883b", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Use possible permissions on file access when developing and deploying web applications.", "id": "course-of-action--4dc38767-be73-424a-b909-90eb4773dfa3", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-10", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--048fb2e5-4985-4092-ab1f-ecb8bb25b6c2", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--4dc38767-be73-424a-b909-90eb4773dfa3", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Validate user input by only accepting known good. Ensure all content that is delivered to client is sanitized against an acceptable content specification -- using an allowlist approach.", "id": "course-of-action--eb88c845-46c6-4223-adf2-ac06a363bac2", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-126-11", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d5c7f3e3-935d-41f4-b489-634a196c7864", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--eb88c845-46c6-4223-adf2-ac06a363bac2", "spec_version": "2.1", "target_ref": "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary crafts a request to a target that results in the target listing/indexing the content of a directory as output. One common method of triggering directory contents as output is to construct a request containing a path that terminates in a directory name rather than a file name since many applications are configured to provide a list of the directory's contents when such a request is received. An adversary can use this to explore the directory tree on a target as well as learn the names of files. This can often end up revealing test files, backup files, temporary files, hidden files, configuration files, user accounts, script contents, as well as naming conventions, all of which can be used by an attacker to mount additional attacks.", "external_references": [ { "external_id": "CAPEC-127", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/127.html" }, { "external_id": "CWE-424", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/424.html" }, { "external_id": "CWE-425", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/425.html" }, { "external_id": "CWE-288", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/288.html" }, { "external_id": "CWE-285", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/285.html" }, { "external_id": "CWE-732", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/732.html" }, { "external_id": "CWE-276", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/276.html" }, { "external_id": "CWE-693", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/693.html" }, { "description": "File and Directory Discovery", "external_id": "T1083", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1083" }, { "description": "WASC Threat Classification 2.0, 2010, The Web Application Security Consortium (WASC)", "external_id": "REF-11", "source_name": "reference_from_CAPEC", "url": "http://projects.webappsec.org/Directory-Indexing" } ], "id": "attack-pattern--62c46d1c-f091-467e-a4b0-61927db31f38", "modified": "2021-06-24T00:00:00.000Z", "name": "Directory Indexing", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--49132d37-44e8-458c-a06e-0e5b9ac9bbd6" ], "x_capec_consequences": { "Confidentiality": [ "Read Data (Information Leakage)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n The adversary uses directory listing to view sensitive files in the application. This is an example of accessing the backup file. The attack issues a request for http://www.example.com/admin/ and receives the following dynamic directory indexing content in the response: Index of /admin Name Last Modified Size Description backup/ 31-May-2007 08:18 - Apache/ 2.0.55 Server at www.example.com Port 80\n The target application does not have direct hyperlink to the \"backup\" directory in the normal html webpage, however the attacker has learned of this directory due to indexing the content. The client then requests the backup directory URL and receives output which has a \"db_dump.php\" file in it. This sensitive data should not be disclosed publicly.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Directory Discovery: Use a method, either manual, scripted, or automated to discover the directories on the server by making requests for directories that may possibly exist. During this phase the adversary is less concerned with whether a directory can be accessed or indexed and more focused on simply discovering what directories do exist on the target.

  2. Techniques
    Send requests to the web server for common directory names
    If directories are discovered that are native to a server type further refine the directory search to include directories usually present on those types of servers.
    Search for uncommon or potentially user created directories that may be present.

Experiment

  1. Iteratively explore directory/file structures: The adversary attempts to access the discovered directories that allow access and may attempt to bypass server or application level ACLs by using manual or automated methods

  2. Techniques
    Use a scanner tool to dynamically add directories/files to include their scan based upon data obtained in initial probes.
    Use a browser to manually explore the website by issuing a request ending the URL in a slash '/'.
    Attempt to bypass ACLs on directories by using methods that known to work against some server types by appending data to the directory request. For instance, appending a Null byte to the end of the request which may cause an ACL to fail and allow access.
    Sequentially request a list of common base files to each directory discovered.
    Try multiple fuzzing techniques to list directory contents for directories that will not reveal their contents with a \"/\" request

Exploit

  1. Read directories or files which are not intended for public viewing.: The adversary attempts to access the discovered directories that allow access and may attempt to bypass server or application level ACLs by using manual or automated methods

  2. Techniques
    Try multiple exploit techniques to list directory contents for directories that will not reveal their contents with a \"/\" request
    Try other known exploits to elevate privileges sufficient to bypass protected directories.
    List the files in the directory by issuing a request with the URL ending in a \"/\" slash.
    Access the files via direct URL and capture contents.
    Attempt to bypass ACLs on directories by using methods that are known to work against some server types by appending data to the directory request. For instance, appending a Null byte to the end of the request which may cause an ACL to fail and allow access.
    Sequentially request a list of common base files to each directory discovered.
", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "The target must be misconfigured to return a list of a directory's content when it receives a request that ends in a directory name rather than a file name.", "The adversary must be able to control the path that is requested of the target.", "The administrator must have failed to properly configure an ACL or has associated an overly permissive ACL with a particular directory.", "The server version or patch level must not inherently prevent known directory listing attacks from working." ], "x_capec_resources_required": [ "Ability to send HTTP requests to a web application." ], "x_capec_skills_required": { "High": "To bypass the access control of the directory of listings", "Low": "To issue the request to URL without given a specific file name" }, "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "1. Using blank index.html: putting blank index.html simply prevent directory listings from displaying to site visitors.", "id": "course-of-action--e159a65a-59f4-41fb-82a5-0f5cf069b10f", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-127-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--1d386aba-01fb-4a86-8b95-a4778cf497ab", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e159a65a-59f4-41fb-82a5-0f5cf069b10f", "spec_version": "2.1", "target_ref": "attack-pattern--62c46d1c-f091-467e-a4b0-61927db31f38", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "2. Preventing with .htaccess in Apache web server: In .htaccess, write \"Options-indexes\".", "id": "course-of-action--7c00c5ac-d08c-4abb-8ce7-7000072c9d15", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-127-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--665bc535-a6b1-48ea-9fd2-4cda3661f872", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--7c00c5ac-d08c-4abb-8ce7-7000072c9d15", "spec_version": "2.1", "target_ref": "attack-pattern--62c46d1c-f091-467e-a4b0-61927db31f38", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "3. Suppressing error messages: using error 403 \"Forbidden\" message exactly like error 404 \"Not Found\" message.", "id": "course-of-action--778c2c99-3964-42e2-9e8a-33e9adf9201b", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-127-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--c93af142-fad4-470f-ab94-e6b35f993234", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--778c2c99-3964-42e2-9e8a-33e9adf9201b", "spec_version": "2.1", "target_ref": "attack-pattern--62c46d1c-f091-467e-a4b0-61927db31f38", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker takes advantage of the structure of integer variables to cause these variables to assume values that are not expected by an application. For example, adding one to the largest positive integer in a signed integer variable results in a negative number. Negative numbers may be illegal in an application and the application may prevent an attacker from providing them directly, but the application may not consider that adding two positive numbers can create a negative number do to the structure of integer storage formats.", "external_references": [ { "external_id": "CAPEC-128", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/128.html" }, { "external_id": "CWE-682", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/682.html" } ], "id": "attack-pattern--1f3b920a-a706-494c-9486-69531a514912", "modified": "2017-08-04T00:00:00.000Z", "name": "Integer Attacks", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--71d31712-9174-4433-8e4f-8520a3ec1249" ], "x_capec_domains": [ "Software" ], "x_capec_parent_of_refs": [ "attack-pattern--369d69a3-fb4a-49ac-8999-9b4ecfbf74c6" ], "x_capec_prerequisites": [ "The target application must have an integer variable for which only some of the possible integer values are expected by the application and where there are no checks on the value of the variable before use.", "The attacker must be able to manipulate the targeted integer variable such that normal operations result in non-standard values due to the storage structure of integers." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This attack pattern involves an adversary manipulating a pointer within a target application resulting in the application accessing an unintended memory location. This can result in the crashing of the application or, for certain pointer values, access to data that would not normally be possible or the execution of arbitrary code. Since pointers are simply integer variables, Integer Attacks may often be used in Pointer Attacks.", "external_references": [ { "external_id": "CAPEC-129", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/129.html" }, { "external_id": "CWE-682", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/682.html" }, { "external_id": "CWE-822", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/822.html" }, { "external_id": "CWE-823", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/823.html" } ], "id": "attack-pattern--6295b7e2-98e9-4fc8-acbf-99769cb3cdf0", "modified": "2019-04-04T00:00:00.000Z", "name": "Pointer Manipulation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_domains": [ "Software" ], "x_capec_prerequisites": [ "The target application must have a pointer variable that the attacker can influence to hold an arbitrary value." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "The adversary directly or indirectly modifies environment variables used by or controlling the target software. The adversary's goal is to cause the target software to deviate from its expected operation in a manner that benefits the adversary.", "external_references": [ { "external_id": "CAPEC-13", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/13.html" }, { "external_id": "CWE-353", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/353.html" }, { "external_id": "CWE-285", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/285.html" }, { "external_id": "CWE-302", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/302.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "external_id": "CWE-15", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/15.html" }, { "external_id": "CWE-73", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/73.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-200", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/200.html" }, { "description": "Impair Defenses:Impair Command History Logging", "external_id": "T1562.003", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1562/003" }, { "description": "Hijack Execution Flow:Dynamic Linker Hijacking", "external_id": "T1574.006", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1574/006" }, { "description": "Hijack Execution Flow:Path Interception by PATH Environment Variable", "external_id": "T1574.007", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1574/007" }, { "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley", "external_id": "REF-1", "source_name": "reference_from_CAPEC" } ], "id": "attack-pattern--f190e1b3-e8d6-4aef-817c-b3e7782e2aed", "modified": "2022-02-22T00:00:00.000Z", "name": "Subverting Environment Variable Values", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_precede_refs": [ "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80" ], "x_capec_child_of_refs": [ "attack-pattern--5e4a268e-f89f-445a-aa42-395922f56bf0" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Accountability": [ "Hide Activities" ], "Authorization": [ "Bypass Protection Mechanism" ], "Availability": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Unreliable Execution" ], "Confidentiality": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Bypass Protection Mechanism", "Read Data" ], "Integrity": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "Changing the LD_LIBRARY_PATH environment variable in TELNET will cause TELNET to use an alternate (possibly Trojan) version of a function library. The Trojan library must be accessible using the target file system and should include Trojan code that will allow the user to log in with a bad password. This requires that the adversary upload the Trojan library to a specific location on the target. As an alternative to uploading a Trojan file, some file systems support file paths that include remote addresses, such as \\\\172.16.2.100\\shared_files\\trojan_dll.dll. See also: Path Manipulation (CVE-1999-0073)", "The HISTCONTROL environment variable keeps track of what should be saved by the history command and eventually into the ~/.bash_history file when a user logs out. This setting can be configured to ignore commands that start with a space by simply setting it to \"ignorespace\". HISTCONTROL can also be set to ignore duplicate commands by setting it to \"ignoredups\". In some Linux systems, this is set by default to \"ignoreboth\" which covers both of the previous examples. This means that \" ls\" will not be saved, but \"ls\" would be saved by history. HISTCONTROL does not exist by default on macOS, but can be set by the user and will be respected. Adversaries can use this to operate without leaving traces by simply prepending a space to all of their terminal commands." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Probe target application: The adversary first probes the target application to determine important information about the target. This information could include types software used, software versions, what user input the application consumes, and so on. Most importantly, the adversary tries to determine what environment variables might be used by the underlying software, or even the application itself.

Experiment

  1. Find user-controlled environment variables: Using the information found by probing the application, the adversary attempts to manipulate any user-controlled environment variables they have found are being used by the application, or suspect are being used by the application, and observe the effects of these changes. If the adversary notices any significant changes to the application, they will know that a certain environment variable is important to the application behavior and indicates a possible attack vector.

  2. Techniques
    Alter known environment variables such as \"$PATH\", \"$HOSTNAME\", or \"LD_LIBRARY_PATH\" and see if application behavior changes.

Exploit

  1. Manipulate user-controlled environment variables: The adversary manipulates the found environment variable(s) to abuse the normal flow of processes or to gain access to privileged resources.

", "x_capec_likelihood_of_attack": "High", "x_capec_peer_of_refs": [ "attack-pattern--4a29d66d-8617-4382-b456-578ecdb1609e" ], "x_capec_prerequisites": [ "An environment variable is accessible to the user.", "An environment variable used by the application can be tainted with user supplied data.", "Input data used in an environment variable is not validated properly.", "The variables encapsulation is not done properly. For instance setting a variable as public in a class makes it visible and an adversary may attempt to manipulate that variable." ], "x_capec_skills_required": { "High": "Some more advanced attacks may require knowledge about protocols and probing technique which help controlling a variable. The malicious user may try to understand the authentication mechanism in order to defeat it.", "Low": "In a web based scenario, the client controls the data that it submitted to the server. So anybody can try to send malicious data and try to bypass the authentication mechanism." }, "x_capec_status": "Stable", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Protect environment variables against unauthorized read and write access.", "id": "course-of-action--60c73cc1-5718-4246-a2a6-da180705e463", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-13-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--e351819c-a8ce-4628-bc2d-fe25172f524f", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--60c73cc1-5718-4246-a2a6-da180705e463", "spec_version": "2.1", "target_ref": "attack-pattern--f190e1b3-e8d6-4aef-817c-b3e7782e2aed", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Protect the configuration files which contain environment variables against illegitimate read and write access.", "id": "course-of-action--88742f57-22ea-48b4-a8a8-aa72de425e08", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-13-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--f927e9e7-a3c2-4e14-8da4-37711f2f0161", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--88742f57-22ea-48b4-a8a8-aa72de425e08", "spec_version": "2.1", "target_ref": "attack-pattern--f190e1b3-e8d6-4aef-817c-b3e7782e2aed", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Assume all input is malicious. Create an allowlist that defines all valid input to the software system based on the requirements specifications. Input that does not match against the allowlist should not be permitted to enter into the system.", "id": "course-of-action--523a56cb-eaa5-451a-8ba9-f85b37fad844", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-13-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--9b2e048e-f266-4abc-a3e7-0430607e7aeb", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--523a56cb-eaa5-451a-8ba9-f85b37fad844", "spec_version": "2.1", "target_ref": "attack-pattern--f190e1b3-e8d6-4aef-817c-b3e7782e2aed", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Apply the least privilege principles. If a process has no legitimate reason to read an environment variable do not give that privilege.", "id": "course-of-action--5ea96ff9-d08f-4da5-b893-17f63f09b83e", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-13-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--36c8f1a2-fc68-4417-ba38-adaa3e68a90d", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--5ea96ff9-d08f-4da5-b893-17f63f09b83e", "spec_version": "2.1", "target_ref": "attack-pattern--f190e1b3-e8d6-4aef-817c-b3e7782e2aed", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary causes the target to allocate excessive resources to servicing the attackers' request, thereby reducing the resources available for legitimate services and degrading or denying services. Usually, this attack focuses on memory allocation, but any finite resource on the target could be the attacked, including bandwidth, processing cycles, or other resources. This attack does not attempt to force this allocation through a large number of requests (that would be Resource Depletion through Flooding) but instead uses one or a small number of requests that are carefully formatted to force the target to allocate excessive resources to service this request(s). Often this attack takes advantage of a bug in the target to cause the target to allocate resources vastly beyond what would be needed for a normal request.", "external_references": [ { "external_id": "CAPEC-130", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/130.html" }, { "external_id": "CWE-404", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/404.html" }, { "external_id": "CWE-770", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/770.html" }, { "external_id": "CWE-1325", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1325.html" }, { "description": "Endpoint Denial of Service:Application Exhaustion Flood", "external_id": "T1499.003", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1499/003" }, { "description": "Denial of Service", "external_id": "10", "source_name": "WASC", "url": "http://projects.webappsec.org/Denial-of-Service" } ], "id": "attack-pattern--e171fd74-3ea6-4ad5-b0ff-71bb311c8024", "modified": "2020-12-17T00:00:00.000Z", "name": "Excessive Allocation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Availability": [ "Resource Consumption (A successful excessive allocation attack forces the target system to exhaust its resources, thereby compromising the availability of its service.)" ] }, "x_capec_domains": [ "Communications", "Software" ], "x_capec_example_instances": [ "In an Integer Attack, the adversary could cause a variable that controls allocation for a request to hold an excessively large value. Excessive allocation of resources can render a service degraded or unavailable to legitimate users and can even lead to crashing of the target." ], "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--8abd01d1-b2a2-4b86-a640-7d3d3b61d27f", "attack-pattern--247019da-353e-4910-9d11-7dc6c0421a17", "attack-pattern--dcf12181-3652-40c9-bb64-b09d367d2fb1", "attack-pattern--c0166c89-dd49-46a7-9359-88a2c9d053e3", "attack-pattern--753614f7-f574-4a2f-9cc4-481c62c25c32", "attack-pattern--428d5dc6-c2be-4a2a-aed1-1e794518b101", "attack-pattern--fbdcbfab-769d-4d52-8ec2-7fd1e4c212de" ], "x_capec_prerequisites": [ "The target must accept service requests from the attacker and the adversary must be able to control the resource allocation associated with this request to be in excess of the normal allocation. The latter is usually accomplished through the presence of a bug on the target that allows the adversary to manipulate variables used in the allocation." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Limit the amount of resources that are accessible to unprivileged users.", "id": "course-of-action--e2401986-f0a6-4a28-bff4-59db19c2000c", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-130-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--008a8e1b-0ad9-49c8-8c07-6d960df810f6", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e2401986-f0a6-4a28-bff4-59db19c2000c", "spec_version": "2.1", "target_ref": "attack-pattern--e171fd74-3ea6-4ad5-b0ff-71bb311c8024", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Assume all input is malicious. Consider all potentially relevant properties when validating input.", "id": "course-of-action--98557606-654b-48be-90f9-47ef76f7034b", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-130-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--282aa96a-4a57-42b1-826a-e6e4abbd87db", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--98557606-654b-48be-90f9-47ef76f7034b", "spec_version": "2.1", "target_ref": "attack-pattern--e171fd74-3ea6-4ad5-b0ff-71bb311c8024", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Consider uniformly throttling all requests in order to make it more difficult to consume resources more quickly than they can again be freed.", "id": "course-of-action--74868224-146c-41a0-afd2-66580f01aa44", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-130-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--51e066b9-7488-4231-91fa-099bbb87c489", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--74868224-146c-41a0-afd2-66580f01aa44", "spec_version": "2.1", "target_ref": "attack-pattern--e171fd74-3ea6-4ad5-b0ff-71bb311c8024", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use resource-limiting settings, if possible.", "id": "course-of-action--e9d23f7b-bee1-4e7e-9621-9a0cb59e8bd4", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-130-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--98433369-590b-48b9-a19e-d159dde960e1", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e9d23f7b-bee1-4e7e-9621-9a0cb59e8bd4", "spec_version": "2.1", "target_ref": "attack-pattern--e171fd74-3ea6-4ad5-b0ff-71bb311c8024", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary utilizes a resource leak on the target to deplete the quantity of the resource available to service legitimate requests.", "external_references": [ { "external_id": "CAPEC-131", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/131.html" }, { "external_id": "CWE-404", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/404.html" }, { "description": "Endpoint Denial of Service", "external_id": "T1499", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1499" }, { "description": "Denial of Service", "external_id": "10", "source_name": "WASC", "url": "http://projects.webappsec.org/Denial-of-Service" } ], "id": "attack-pattern--01d5c7e7-1c74-4b20-9e43-548c5f4de113", "modified": "2022-02-22T00:00:00.000Z", "name": "Resource Leak Exposure", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Availability": [ "Unreliable Execution (A successful resource leak exposure attack compromises the availability of the target system's services.)", "Resource Consumption (A successful resource leak exposure attack compromises the availability of the target system's services.)" ] }, "x_capec_domains": [ "Software" ], "x_capec_extended_description": "\n Resource leaks most often come in the form of memory leaks where memory is allocated but never released after it has served its purpose, however, theoretically, any other resource that can be reserved can be targeted if the target fails to release the reservation when the reserved resource block is no longer needed.\n In this attack, the adversary determines what activity results in leaked resources and then triggers that activity on the target. Since some leaks may be small, this may require a large number of requests by the adversary. However, this attack differs from a flooding attack in that the rate of requests is generally not significant. This is because the lost resources due to the leak accumulate until the target is reset, usually by restarting it. Thus, a resource-poor adversary who would be unable to flood the target can still utilize this attack.\n Resource depletion through leak differs from resource depletion through allocation in that, in the former, the adversary may not be able to control the size of each leaked allocation, but instead allows the leak to accumulate until it is large enough to affect the target's performance. When depleting resources through allocation, the allocated resource may eventually be released by the target so the attack relies on making sure that the allocation size itself is prohibitive of normal operations by the target.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_prerequisites": [ "The target must have a resource leak that the adversary can repeatedly trigger." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "If possible, leverage coding language(s) that do not allow this weakness to occur (e.g., Java, Ruby, and Python all perform automatic garbage collection that releases memory for objects that have been deallocated).", "id": "course-of-action--cf45c4fb-cc58-4502-876c-56d851cd73f9", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-131-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--adc4413e-bddd-423e-ba63-df78f79cc02f", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--cf45c4fb-cc58-4502-876c-56d851cd73f9", "spec_version": "2.1", "target_ref": "attack-pattern--01d5c7e7-1c74-4b20-9e43-548c5f4de113", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Memory should always be allocated/freed using matching functions (e.g., malloc/free, new/delete, etc.)", "id": "course-of-action--d3e6855e-8bae-4987-bb3d-398e16bb2502", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-131-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--05481c8c-ea7e-42e4-a012-87f4ecdeb7b8", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--d3e6855e-8bae-4987-bb3d-398e16bb2502", "spec_version": "2.1", "target_ref": "attack-pattern--01d5c7e7-1c74-4b20-9e43-548c5f4de113", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implement best practices with respect to memory management, including the freeing of all allocated resources at all exit points and ensuring consistency with how and where memory is freed in a function.", "id": "course-of-action--e848e916-876c-4616-85ac-a44e4e90b63b", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-131-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--dbe99895-80e2-48af-966a-55f26aadd3d5", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e848e916-876c-4616-85ac-a44e4e90b63b", "spec_version": "2.1", "target_ref": "attack-pattern--01d5c7e7-1c74-4b20-9e43-548c5f4de113", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary positions a symbolic link in such a manner that the targeted user or application accesses the link's endpoint, assuming that it is accessing a file with the link's name.", "external_references": [ { "external_id": "CAPEC-132", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/132.html" }, { "external_id": "CWE-59", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/59.html" }, { "description": "Boot or Logon Autostart Execution:Shortcut Modification", "external_id": "T1547.009", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1547/009" }, { "description": "Shaun Colley, Crafting Symlinks for Fun and Profit", "external_id": "REF-13", "source_name": "reference_from_CAPEC", "url": "http://www.infosecwriters.com/texts.php?op=display&id=159" } ], "id": "attack-pattern--7cb5458d-b646-4a25-ad0a-4c3fabd70a65", "modified": "2022-09-29T00:00:00.000Z", "name": "Symlink Attack", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--d16af13f-5e0f-4a6b-bc1f-23f733d2229b" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Accountability": [ "Gain Privileges" ], "Authentication": [ "Gain Privileges" ], "Authorization": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Gain Privileges", "Bypass Protection Mechanism" ], "Availability": [ "Unreliable Execution" ], "Confidentiality": [ "Other (Information Leakage)", "Read Data" ], "Integrity": [ "Modify Data", "Modify Data" ], "Non-Repudiation": [ "Gain Privileges" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n The adversary creates a symlink with the \"same\" name as the file which the application is intending to write to. The application will write to the file- \"causing the data to be written where the symlink is pointing\". An attack like this can be demonstrated as follows:\n root# vulprog myFile\n {...program does some processing...]\n \n adversary# ln –s /etc/nologin myFile\n [...program writes to 'myFile', which points to /etc/nologin...]\n \n \n In the above example, the root user ran a program with poorly written file handling routines, providing the filename \"myFile\" to vulnprog for the relevant data to be written to. However, the adversary happened to be looking over the shoulder of \"root\" at the time, and created a link from myFile to /etc/nologin. The attack would make no user be able to login.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify Target: Adversary identifies the target application by determining whether there is sufficient check before writing data to a file and creating symlinks to files in different directories.

  2. Techniques
    The adversary writes to files in different directories to check whether the application has sufficient checking before file operations.
    The adversary creates symlinks to files in different directories.

Experiment

  1. Try to create symlinks to different files: The adversary then uses a variety of techniques, such as monitoring or guessing to create symlinks to the files accessed by the target application in the directories which are identified in the explore phase.

  2. Techniques
    The adversary monitors the file operations performed by the target application using a tool like dtrace or FileMon. And the adversary can delay the operations by using \"sleep(2)\" and \"usleep()\" to prepare the appropriate conditions for the attack, or make the application perform expansive tasks (large files parsing, etc.) depending on the purpose of the application.
    The adversary may need a little guesswork on the filenames on which the target application would operate.
    The adversary tries to create symlinks to the various filenames.

Exploit

  1. Target application operates on created symlinks to sensitive files: The adversary is able to create symlinks to sensitive files while the target application is operating on the file.

  2. Techniques
    Create the symlink to the sensitive file such as configuration files, etc.
", "x_capec_extended_description": "\n The endpoint file may be either output or input. If the file is output, the result is that the endpoint is modified, instead of a file at the intended location. Modifications to the endpoint file may include appending, overwriting, corrupting, changing permissions, or other modifications.\n In some variants of this attack the adversary may be able to control the change to a file while in other cases they cannot. The former is especially damaging since the adversary may be able to grant themselves increased privileges or insert false information, but the latter can also be damaging as it can expose sensitive information or corrupt or destroy vital system or application files. Alternatively, the endpoint file may serve as input to the targeted application. This can be used to feed malformed input into the target or to cause the target to process different information, possibly allowing the adversary to control the actions of the target or to cause the target to expose information to the adversary. Moreover, the actions taken on the endpoint file are undertaken with the permissions of the targeted user or application, which may exceed the permissions that the adversary would normally have.\n ", "x_capec_likelihood_of_attack": "Low", "x_capec_prerequisites": [ "The targeted application must perform the desired activities on a file without checking whether the file is a symbolic link or not. The adversary must be able to predict the name of the file the target application is modifying and be able to create a new symbolic link where that file would appear." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. The only requirement is the ability to create the necessary symbolic link." ], "x_capec_skills_required": { "High": "To identify the files and create the symlinks during the file operation time window", "Low": "To create symlinks" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Check for the existence of files to be created, if in existence verify they are neither symlinks nor hard links before opening them.", "id": "course-of-action--f5210720-4324-4516-a229-f892a14476e3", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-132-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--a8e73cf8-4cb5-4ae9-9a70-c2ebefdf62fc", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f5210720-4324-4516-a229-f892a14476e3", "spec_version": "2.1", "target_ref": "attack-pattern--7cb5458d-b646-4a25-ad0a-4c3fabd70a65", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Use randomly generated file names for temporary files. Give the files restrictive permissions.", "id": "course-of-action--a30baed8-dcc2-47af-93ca-38ef0fe2e8e2", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-132-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--9cf8f1cf-51b6-4745-843d-2b4655e99ce6", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a30baed8-dcc2-47af-93ca-38ef0fe2e8e2", "spec_version": "2.1", "target_ref": "attack-pattern--7cb5458d-b646-4a25-ad0a-4c3fabd70a65", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker attempts to invoke all common switches and options in the target application for the purpose of discovering weaknesses in the target. For example, in some applications, adding a --debug switch causes debugging information to be displayed, which can sometimes reveal sensitive processing or configuration information to an attacker. This attack differs from other forms of API abuse in that the attacker is indiscriminately attempting to invoke options in the hope that one of them will work rather than specifically targeting a known option. Nonetheless, even if the attacker is familiar with the published options of a targeted application this attack method may still be fruitful as it might discover unpublicized functionality.", "external_references": [ { "external_id": "CAPEC-133", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/133.html" }, { "external_id": "CWE-912", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/912.html" } ], "id": "attack-pattern--a0fc32ad-ef32-44d5-9937-5968f5e7b78c", "modified": "2021-10-21T00:00:00.000Z", "name": "Try All Common Switches", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--f4186110-0c20-42fa-bc6f-d0ff9f700f91" ], "x_capec_domains": [ "Software" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify application: Discover an application of interest by exploring service registry listings or by connecting on a known port or some similar means.

  2. Techniques
    Search via internet for known, published applications that allow option switches.
    Use automated tools to scan known ports to identify applications that might be accessible
  3. Authenticate to application: Authenticate to the application, if required, in order to explore it.

  4. Techniques
    Use published credentials to access system.
    Find unpublished credentails to access service.
    Use other attack pattern or weakness to bypass authentication.

Experiment

  1. Try all common switches: Using manual or automated means, attempt to run the application with many different known common switches. Observe the output to see if any switches seemed to put the application in a non production mode that might give more information.

  2. Techniques
    Manually execute the application with switches such as --debug, --test, --development, --verbose, etc.
    Use automated tools to run the application with common switches and observe the output

Exploit

  1. Use sensitive processing or configuration information: Once extra information is observed from an application through the use of a common switch, this information is used to aid other attacks on the application

  2. Techniques
    Using application information, formulate an attack on the application
", "x_capec_prerequisites": [ "The attacker must be able to control the options or switches sent to the target." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. The only requirement is the ability to send requests to the target." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Minimize switch and option functionality to only that necessary for correct function of the command.", "id": "course-of-action--98da757a-6fb3-4a86-b0b3-c7731ca1325b", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-133-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--9849d6f7-11c6-49c0-a3b7-a87ba59d92c3", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--98da757a-6fb3-4a86-b0b3-c7731ca1325b", "spec_version": "2.1", "target_ref": "attack-pattern--a0fc32ad-ef32-44d5-9937-5968f5e7b78c", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Remove all debug and testing options from production code.", "id": "course-of-action--86466080-30aa-42b1-a6cc-f8103cf49498", "modified": "2021-10-21T00:00:00.000Z", "name": "coa-133-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--007dc896-33a1-418f-8400-a4ae48f79658", "modified": "2021-10-21T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--86466080-30aa-42b1-a6cc-f8103cf49498", "spec_version": "2.1", "target_ref": "attack-pattern--a0fc32ad-ef32-44d5-9937-5968f5e7b78c", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary manipulates the headers and content of an email message by injecting data via the use of delimiter characters native to the protocol.", "external_references": [ { "external_id": "CAPEC-134", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/134.html" }, { "external_id": "CWE-150", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/150.html" }, { "description": "Mail Command Injection", "external_id": "30", "source_name": "WASC", "url": "http://projects.webappsec.org/Mail-Command-Injection" } ], "id": "attack-pattern--3e3f4570-827b-4e0e-859b-00a4b13a1a65", "modified": "2022-02-22T00:00:00.000Z", "name": "Email Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--cde07b71-23e6-418d-93e9-665f5f83b032" ], "x_capec_domains": [ "Software" ], "x_capec_extended_description": "\n Many applications allow users to send email messages by filling in fields. For example, a web site may have a link to \"share this site with a friend\" where the user provides the recipient's email address and the web application fills out all the other fields, such as the subject and body. In this pattern, an adversary adds header and body information to an email message by injecting additional content in an input field used to construct a header of the mail message. This attack takes advantage of the fact that RFC 822 requires that headers in a mail message be separated by a carriage return. As a result, an adversary can inject new headers or content simply by adding a delimiting carriage return and then supplying the new heading and body information. This attack will not work if the user can only supply the message body since a carriage return in the body is treated as a normal character.\n ", "x_capec_parent_of_refs": [ "attack-pattern--30047c4f-cbf1-48ff-906c-3c6d58feb1a1" ], "x_capec_prerequisites": [ "The target application must allow the user to send email to some recipient, to specify the content at least one header field in the message, and must fail to sanitize against the injection of command separators.", "The adversary must have the ability to access the target mail application." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary includes formatting characters in a string input field on the target application. Most applications assume that users will provide static text and may respond unpredictably to the presence of formatting character. For example, in certain functions of the C programming languages such as printf, the formatting character %s will print the contents of a memory location expecting this location to identify a string and the formatting character %n prints the number of DWORD written in the memory. An adversary can use this to read or write to memory locations or files, or simply to manipulate the value of the resulting text in unexpected ways. Reading or writing memory may result in program crashes and writing memory could result in the execution of arbitrary code if the adversary can write to the program stack.", "external_references": [ { "external_id": "CAPEC-135", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/135.html" }, { "external_id": "CWE-134", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/134.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "description": "Format string attack", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Format_string_attack" }, { "description": "Hal Burch, Brendan Saulsbury, FIO30-C. Exclude user input from format strings, 2011--05, CERT", "external_id": "REF-14", "source_name": "reference_from_CAPEC", "url": "https://www.securecoding.cert.org/confluence/display/seccode/FIO30-C.+Exclude+user+input+from+format+strings" }, { "description": "Robert Auger, WASC Threat Classification 2.0, The Web Application Security Consortium (WASC)", "external_id": "REF-15", "source_name": "reference_from_CAPEC", "url": "http://projects.webappsec.org/Format-String" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-616", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/13-Testing_for_Format_String_Injection.html" } ], "id": "attack-pattern--cbabea0a-39ed-4a6f-b752-238fe8c730af", "modified": "2021-06-24T00:00:00.000Z", "name": "Format String Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--cde07b71-23e6-418d-93e9-665f5f83b032" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Confidentiality": [ "Read Data" ], "Integrity": [ "Modify Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "Untrusted search path vulnerability in the add_filename_to_string function in intl/gettext/loadmsgcat.c for Elinks 0.11.1 allows local users to cause Elinks to use an untrusted gettext message catalog (.po file) in a \"../po\" directory, which can be leveraged to conduct format string attacks. See also: CVE-2007-2027" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey application: The adversary takes an inventory of the entry points of the application.

  2. Techniques
    Spider web sites for all available links
    List parameters, external variables, configuration files variables, etc. that are possibly used by the application.

Experiment

  1. Determine user-controllable input susceptible to format string injection: Determine the user-controllable input susceptible to format string injection. For each user-controllable input that the adversary suspects is vulnerable to format string injection, attempt to inject formatting characters such as %n, %s, etc.. The goal is to manipulate the string creation using these formatting characters.

  2. Techniques
    Inject probe payload which contains formatting characters (%s, %d, %n, etc.) through input parameters.

Exploit

  1. Try to exploit the Format String Injection vulnerability: After determining that a given input is vulnerable to format string injection, hypothesize what the underlying usage looks like and the associated constraints.

  2. Techniques
    Insert various formatting characters to read or write the memory, e.g. overwrite return address, etc.
", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--4cd18074-15c1-4206-8391-115685669623" ], "x_capec_prerequisites": [ "The target application must accept a strings as user input, fail to sanitize string formatting characters in the user input, and process this string using functions that interpret string formatting characters." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "High": "In order to discover format string vulnerabilities it takes only low skill, however, converting this discovery into a working exploit requires advanced knowledge on the part of the adversary." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Limit the usage of formatting string functions.", "id": "course-of-action--2fed494b-5a78-425c-acaa-11d9ffec4342", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-135-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d7b9dd8b-8e73-4e2b-ba24-d8b7c5a033ec", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--2fed494b-5a78-425c-acaa-11d9ffec4342", "spec_version": "2.1", "target_ref": "attack-pattern--cbabea0a-39ed-4a6f-b752-238fe8c730af", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Strong input validation - All user-controllable input must be validated and filtered for illegal formatting characters.", "id": "course-of-action--132cab4e-0189-4458-80c6-5fce45bee5b1", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-135-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--dcb94cfe-e24f-4a9f-90fe-c4f2388067b2", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--132cab4e-0189-4458-80c6-5fce45bee5b1", "spec_version": "2.1", "target_ref": "attack-pattern--cbabea0a-39ed-4a6f-b752-238fe8c730af", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker manipulates or crafts an LDAP query for the purpose of undermining the security of the target. Some applications use user input to create LDAP queries that are processed by an LDAP server. For example, a user might provide their username during authentication and the username might be inserted in an LDAP query during the authentication process. An attacker could use this input to inject additional commands into an LDAP query that could disclose sensitive information. For example, entering a * in the aforementioned query might return information about all users on the system. This attack is very similar to an SQL injection attack in that it manipulates a query to gather additional information or coerce a particular return value.", "external_references": [ { "external_id": "CAPEC-136", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/136.html" }, { "external_id": "CWE-77", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/77.html" }, { "external_id": "CWE-90", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/90.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "description": "LDAP Injection", "external_id": "29", "source_name": "WASC", "url": "http://projects.webappsec.org/LDAP-Injection" }, { "description": "LDAP Injection", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/LDAP_Injection" }, { "description": "WASC Threat Classification 2.0, 2010, The Web Application Security Consortium (WASC)", "external_id": "REF-17", "source_name": "reference_from_CAPEC", "url": "http://projects.webappsec.org/LDAP-Injection" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-608", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/06-Testing_for_LDAP_Injection.html" } ], "id": "attack-pattern--4b435e98-08cb-4464-bf08-32f95e011d05", "modified": "2020-12-17T00:00:00.000Z", "name": "LDAP Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--2fb2b2b8-b7de-45a2-aadb-5849d12fda8f" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Accountability": [ "Gain Privileges" ], "Authentication": [ "Gain Privileges" ], "Authorization": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Gain Privileges", "Bypass Protection Mechanism" ], "Availability": [ "Unreliable Execution" ], "Confidentiality": [ "Read Data" ], "Integrity": [ "Modify Data" ], "Non-Repudiation": [ "Gain Privileges" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "PowerDNS before 2.9.18, when running with an LDAP backend, does not properly escape LDAP queries, which allows remote attackers to cause a denial of service (failure to answer ldap questions) and possibly conduct an LDAP injection attack. See also: CVE-2005-2301" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey application: The attacker takes an inventory of the entry points of the application.

  2. Techniques
    Spider web sites for all available links
    Sniff network communications with application using a utility such as WireShark.

Experiment

  1. Determine user-controllable input susceptible to LDAP injection: For each user-controllable input that the attacker suspects is vulnerable to LDAP injection, attempt to inject characters that have special meaning in LDAP (such as a single quote character, etc.). The goal is to create a LDAP query with an invalid syntax

  2. Techniques
    Use web browser to inject input through text fields or through HTTP GET parameters
    Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, or other HTTP header.
    Use modified client (modified by reverse engineering) to inject input.
  3. Try to exploit the LDAP injection vulnerability: After determining that a given input is vulnerable to LDAP Injection, hypothesize what the underlying query looks like. Possibly using a tool, iteratively try to add logic to the query to extract information from the LDAP, or to modify or delete information in the LDAP.

  4. Techniques
    Add logic to the LDAP query to change the meaning of that command. Automated tools could be used to generate the LDAP injection strings.
    Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, or other HTTP header.
", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "The target application must accept a string as user input, fail to sanitize characters that have a special meaning in LDAP queries in the user input, and insert the user-supplied string in an LDAP query which is then processed." ], "x_capec_skills_required": { "Medium": "The attacker needs to have knowledge of LDAP, especially its query syntax." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Strong input validation - All user-controllable input must be validated and filtered for illegal characters as well as LDAP content.", "id": "course-of-action--e5e6818b-d525-4ade-8d2e-11e4664731e6", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-136-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--9f1eb213-9854-4530-b7ae-cb3659bd69ac", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e5e6818b-d525-4ade-8d2e-11e4664731e6", "spec_version": "2.1", "target_ref": "attack-pattern--4b435e98-08cb-4464-bf08-32f95e011d05", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use of custom error pages - Attackers can glean information about the nature of queries from descriptive error messages. Input validation must be coupled with customized error pages that inform about an error without disclosing information about the LDAP or application.", "id": "course-of-action--b1261793-b0f9-4ad7-90fb-d3f6a464ccfe", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-136-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--674db528-648e-458e-81fc-e9ef0a61222e", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b1261793-b0f9-4ad7-90fb-d3f6a464ccfe", "spec_version": "2.1", "target_ref": "attack-pattern--4b435e98-08cb-4464-bf08-32f95e011d05", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary manipulates the content of request parameters for the purpose of undermining the security of the target. Some parameter encodings use text characters as separators. For example, parameters in a HTTP GET message are encoded as name-value pairs separated by an ampersand (&). If an attacker can supply text strings that are used to fill in these parameters, then they can inject special characters used in the encoding scheme to add or modify parameters. For example, if user input is fed directly into an HTTP GET request and the user provides the value \"myInput&new_param=myValue\", then the input parameter is set to myInput, but a new parameter (new_param) is also added with a value of myValue. This can significantly change the meaning of the query that is processed by the server. Any encoding scheme where parameters are identified and separated by text characters is potentially vulnerable to this attack - the HTTP GET encoding used above is just one example.", "external_references": [ { "external_id": "CAPEC-137", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/137.html" }, { "external_id": "CWE-88", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/88.html" } ], "id": "attack-pattern--cde07b71-23e6-418d-93e9-665f5f83b032", "modified": "2019-04-04T00:00:00.000Z", "name": "Parameter Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Integrity": [ "Modify Data (Successful parameter injection attacks mean a compromise to integrity of the application.)" ] }, "x_capec_domains": [ "Social Engineering", "Software" ], "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--3e3f4570-827b-4e0e-859b-00a4b13a1a65", "attack-pattern--cbabea0a-39ed-4a6f-b752-238fe8c730af", "attack-pattern--e3a32913-a4a6-4a3c-8f3b-a8a6dc16df53", "attack-pattern--582943a5-d66c-48a9-8cf8-76e511222c7d", "attack-pattern--2a8824eb-4fd0-45a4-9c3c-af3fd7c5e0ca", "attack-pattern--b97b706c-8b6e-4681-a22b-89d5e53134b7" ], "x_capec_prerequisites": [ "The target application must use a parameter encoding where separators and parameter identifiers are expressed in regular text.", "The target application must accept a string as user input, fail to sanitize characters that have a special meaning in the parameter encoding, and insert the user-supplied string in an encoding which is then processed." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. The only requirement is the ability to provide string input to the target." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implement an audit log written to a separate host. In the event of a compromise, the audit log may be able to provide evidence and details of the compromise.", "id": "course-of-action--1b38336c-de87-49c0-9183-cdb80f9fb73b", "modified": "2019-04-04T00:00:00.000Z", "name": "coa-137-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--87d764be-a2f1-4a91-b9fb-61093b531c50", "modified": "2019-04-04T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--1b38336c-de87-49c0-9183-cdb80f9fb73b", "spec_version": "2.1", "target_ref": "attack-pattern--cde07b71-23e6-418d-93e9-665f5f83b032", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Treat all user input as untrusted data that must be validated before use.", "id": "course-of-action--96f190f9-bfce-4fbd-b4fd-9d07e68f3681", "modified": "2019-04-04T00:00:00.000Z", "name": "coa-137-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--f667d453-e763-41ac-ad05-bcda477818fd", "modified": "2019-04-04T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--96f190f9-bfce-4fbd-b4fd-9d07e68f3681", "spec_version": "2.1", "target_ref": "attack-pattern--cde07b71-23e6-418d-93e9-665f5f83b032", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary supplies a value to the target application which is then used by reflection methods to identify a class, method, or field. For example, in the Java programming language the reflection libraries permit an application to inspect, load, and invoke classes and their components by name. If an adversary can control the input into these methods including the name of the class/method/field or the parameters passed to methods, they can cause the targeted application to invoke incorrect methods, read random fields, or even to load and utilize malicious classes that the adversary created. This can lead to the application revealing sensitive information, returning incorrect results, or even having the adversary take control of the targeted application.", "external_references": [ { "external_id": "CAPEC-138", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/138.html" }, { "external_id": "CWE-470", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/470.html" } ], "id": "attack-pattern--e3a32913-a4a6-4a3c-8f3b-a8a6dc16df53", "modified": "2023-01-24T00:00:00.000Z", "name": "Reflection Injection", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--cde07b71-23e6-418d-93e9-665f5f83b032" ], "x_capec_domains": [ "Software" ], "x_capec_prerequisites": [ "The target application must utilize reflection libraries and allow users to directly control the parameters to these methods. If the adversary can host classes where the target can invoke them, more powerful variants of this attack are possible.", "The target application must accept a string as user input, fail to sanitize characters that have a special meaning in the parameter encoding, and insert the user-supplied string in an encoding which is then processed." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker exploits a weakness in input validation on the target by supplying a specially constructed path utilizing dot and slash characters for the purpose of obtaining access to arbitrary files or resources. An attacker modifies a known path on the target in order to reach material that is not available through intended channels. These attacks normally involve adding additional path separators (/ or \\) and/or dots (.), or encodings thereof, in various combinations in order to reach parent directories or entirely separate trees of the target's directory structure.", "external_references": [ { "external_id": "CAPEC-139", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/139.html" }, { "external_id": "CWE-23", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/23.html" }, { "description": "OWASP Testing Guide (v4), 2010, The Open Web Application Security Project (OWASP)", "external_id": "REF-9", "source_name": "reference_from_CAPEC", "url": "https://www.owasp.org/index.php/Testing_for_Path_Traversal_(OWASP-AZ-001)" }, { "description": "WASC Threat Classification 2.0, 2010, The Web Application Security Consortium (WASC)", "external_id": "REF-10", "source_name": "reference_from_CAPEC", "url": "http://projects.webappsec.org/w/page/13246952/Path-Traversal" } ], "id": "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "modified": "2022-09-29T00:00:00.000Z", "name": "Relative Path Traversal", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Availability": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Unreliable Execution" ], "Confidentiality": [ "Read Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Integrity": [ "Modify Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n The attacker uses relative path traversal to access files in the application. This is an example of accessing user's password file.\n http://www.example.com/getProfile.jsp?filename=../../../../etc/passwd\n However, the target application employs regular expressions to make sure no relative path sequences are being passed through the application to the web page. The application would replace all matches from this regex with the empty string.\n Then an attacker creates special payloads to bypass this filter:\n http://www.example.com/getProfile.jsp?filename=%2e%2e/%2e%2e/%2e%2e/%2e%2e /etc/passwd\n When the application gets this input string, it will be the desired vector by the attacker.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Fingerprinting of the operating system: In order to perform a valid path traversal, the adversary needs to know what the underlying OS is so that the proper file seperator is used.

  2. Techniques
    Port mapping. Identify ports that the system is listening on, and attempt to identify inputs and protocol types on those ports.
    TCP/IP Fingerprinting. The adversary uses various software to make connections or partial connections and observe idiosyncratic responses from the operating system. Using those responses, they attempt to guess the actual operating system.
    Induce errors to find informative error messages
  3. Survey application: Using manual or automated means, an adversary will survey the target application looking for all areas where user input is taken to specify a file name or path.

  4. Techniques
    Use a spidering tool to follow and record all links on a web page. Make special note of any links that include parameters in the URL.
    Use a proxy tool to record all links visited during a manual traversal of a web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms.
    Use a browser to manually explore a website and analyze how it is constructed. Many browser plug-ins are available to facilitate the analysis or automate the URL discovery.

Experiment

  1. Attempt variations on input parameters: Using manual or automated means, an adversary attempts varying relative file path combinations on all found user input locations and observes the responses.

  2. Techniques
    Provide \"../\" or \"..\\\" at the beginning of any filename to traverse to the parent directory
    Use a list of probe strings as path traversal payload. Different strings may be used for different platforms. Strings contain relative path sequences such as \"../\".
    Use a proxy tool to record results of manual input of relative path traversal probes in known URLs.

Exploit

  1. Access, modify, or execute arbitrary files.: An adversary injects path traversal syntax into identified vulnerable inputs to cause inappropriate reading, writing or execution of files. An adversary could be able to read directories or files which they are normally not allowed to read. The adversary could also access data outside the web document root, or include scripts, source code and other kinds of files from external websites. Once the adversary accesses arbitrary files, they could also modify files. In particular situations, the adversary could also execute arbitrary code or system commands.

  2. Techniques
    Manipulate file and its path by injecting relative path sequences (e.g. \"../\").
    Download files, modify files, or try to execute shell commands (with binary files).
", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "The target application must accept a string as user input, fail to sanitize combinations of characters in the input that have a special meaning in the context of path navigation, and insert the user-supplied string into path navigation commands." ], "x_capec_skills_required": { "High": "To bypass non trivial filters in the application", "Low": "To inject the malicious payload in a web page" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Input validation. Assume that user inputs are malicious. Utilize strict type, character, and encoding enforcement", "id": "course-of-action--03927772-a50c-42a3-b4ff-f72892917b5e", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-139-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--00ca197d-8e7f-4dc6-ab81-53dcf255f9f1", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--03927772-a50c-42a3-b4ff-f72892917b5e", "spec_version": "2.1", "target_ref": "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--cbcc574c-56af-4a8a-b9c0-d5b4d59b58ed", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b3379e8f-995d-4df7-be15-7861c104b55c", "spec_version": "2.1", "target_ref": "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6783fbbe-cb1a-4317-b126-e62c3d58ea7a", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--eb88c845-46c6-4223-adf2-ac06a363bac2", "spec_version": "2.1", "target_ref": "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Prefer working without user input when using file system calls", "id": "course-of-action--58beef38-a794-42dd-9869-09e4f46ad695", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-139-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--aa273050-3e5a-48ed-99c7-1995e7e3dddf", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--58beef38-a794-42dd-9869-09e4f46ad695", "spec_version": "2.1", "target_ref": "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--7fa50c0f-70d2-46b9-9b96-8a6d35003ae2", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f972cf8f-5c89-4e6c-87ad-8eb40c32883b", "spec_version": "2.1", "target_ref": "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--42bb8848-1460-40e7-8946-994f5692eb0b", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--4dc38767-be73-424a-b909-90eb4773dfa3", "spec_version": "2.1", "target_ref": "attack-pattern--b2d76f31-f1e3-4797-a19f-246859422074", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This type of attack exploits a buffer overflow vulnerability in targeted client software through injection of malicious content from a custom-built hostile service. This hostile service is created to deliver the correct content to the client software. For example, if the client-side application is a browser, the service will host a webpage that the browser loads.", "external_references": [ { "external_id": "CAPEC-14", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/14.html" }, { "external_id": "CWE-120", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/120.html" }, { "external_id": "CWE-353", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/353.html" }, { "external_id": "CWE-118", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/118.html" }, { "external_id": "CWE-119", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/119.html" }, { "external_id": "CWE-74", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/74.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-680", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/680.html" }, { "external_id": "CWE-697", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/697.html" }, { "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley", "external_id": "REF-1", "source_name": "reference_from_CAPEC" } ], "id": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "modified": "2022-09-29T00:00:00.000Z", "name": "Client-side Injection-induced Buffer Overflow", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_follow_refs": [ "attack-pattern--f190e1b3-e8d6-4aef-817c-b3e7782e2aed" ], "x_capec_child_of_refs": [ "attack-pattern--77e51461-7843-411c-a90e-852498957f76" ], "x_capec_consequences": { "Availability": [ "Resource Consumption (Denial of Service)", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Read Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Integrity": [ "Modify Data", "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n Authors often use tags in HTML documents. For example\n \n In Internet Explorer 4.0 an adversary attacker supplies an overly long path in the SRC= directive, the mshtml.dll component will suffer a buffer overflow. This is a standard example of content in a Web page being directed to exploit a faulty module in the system. There are potentially thousands of different ways data can propagate into a given system, thus these kinds of attacks will continue to be found in the wild.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify target client-side application: The adversary identifies a target client-side application to perform the buffer overflow on. The most common are browsers. If there is a known browser vulnerability an adversary could target that.

Experiment

  1. Find injection vector: The adversary identifies an injection vector to deliver the excessive content to the targeted application's buffer.

  2. Techniques
    Many times client side applications will be open source, so an adversary can examine the source code to identify possible injection vectors.
    Examine APIs of the client-side application and look for areas where a buffer overflow might be possible.
  3. Create hostile service: The adversary creates a hostile service that will deliver content to the client-side application. If the intent is to simply cause the software to crash, the content need only consist of an excessive quantity of random data. If the intent is to leverage the overflow for execution of arbitrary code, the adversary crafts the payload in such a way that the overwritten return address is replaced with one of the adversary's choosing.

  4. Techniques
    If the client-side application is a browser, the adversary will create a service that delivers a malicious webpage to the browser.
    Create malicious shellcode that will execute when the program execution is returned to it.
    Use a NOP-sled in the overflow content to more easily \"slide\" into the malicious code. This is done so that the exact return address need not be correct, only in the range of all of the NOPs

Exploit

  1. Overflow the buffer: Using the injection vector, the adversary delivers the content to the client-side application using the hostile service and overflows the buffer.

  2. Techniques
    If the adversary is targeting a local client-side application, they just need to use the service themselves.
    If the adversary is attempting to cause an overflow on an external user's client-side application, they must get the user to attach to their service by some other means. This could be getting a user to visit their hostile webpage to target a user's browser.
", "x_capec_likelihood_of_attack": "Medium", "x_capec_prerequisites": [ "The targeted client software communicates with an external server.", "The targeted client software has a buffer overflow vulnerability." ], "x_capec_skills_required": { "High": "Exploiting a buffer overflow to inject malicious code into the stack of a software system or even the heap requires a more in-depth knowledge and higher skill level.", "Low": "To achieve a denial of service, an attacker can simply overflow a buffer by inserting a long string into an attacker-modifiable injection vector." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "The client software should not install untrusted code from a non-authenticated server.", "id": "course-of-action--2761b390-a1a6-4680-a497-a6a2c25e93c9", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-14-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8a74ceb6-2d35-4bcc-9ead-f651fb717fec", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--2761b390-a1a6-4680-a497-a6a2c25e93c9", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "The client software should have the latest patches and should be audited for vulnerabilities before being used to communicate with potentially hostile servers.", "id": "course-of-action--ce9d6c88-9b3a-4753-8f7e-6bdc4ae98b79", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-14-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--3ffe9eb1-760d-4e9e-9075-29f67befc8f5", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--ce9d6c88-9b3a-4753-8f7e-6bdc4ae98b79", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Perform input validation for length of buffer inputs.", "id": "course-of-action--4a5d5c42-670e-4977-9e5e-fec5b0d2fca3", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-14-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--93d45ad5-fae3-4178-8d28-ccd3ff20216c", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--4a5d5c42-670e-4977-9e5e-fec5b0d2fca3", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--e1bb78a3-4a93-4fbe-815f-5cca85a0c491", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a253c485-f225-4dd3-b0ba-dbe4b29fa134", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use an abstraction library to abstract away risky APIs. Not a complete solution.", "id": "course-of-action--286c9aaa-2118-48dc-bce6-6e3f41adc043", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-14-4", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ffb905de-a976-4ece-aa2c-96b818a64df0", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--286c9aaa-2118-48dc-bce6-6e3f41adc043", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6f20aff5-3638-4761-91c5-af43ae273927", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--115171ef-9f32-43b6-bb8a-49f0a78286e9", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure all buffer uses are consistently bounds-checked.", "id": "course-of-action--e5a5e968-cd66-49b5-bbb8-b26099ede481", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-14-6", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--4914cfc7-c995-469b-984b-72e07bf331e0", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e5a5e968-cd66-49b5-bbb8-b26099ede481", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--acdc688e-fa9d-48da-94ba-90902d7ac10d", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b8955156-d3d6-4db5-bc3b-595bda29964b", "spec_version": "2.1", "target_ref": "attack-pattern--c4a0c765-e4ca-43c2-996e-08ce13ae8f80", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Some web applications require users to submit information through an ordered sequence of web forms. This is often done if there is a very large amount of information being collected or if information on earlier forms is used to pre-populate fields or determine which additional information the application needs to collect. An attacker who knows the names of the various forms in the sequence may be able to explicitly type in the name of a later form and navigate to it without first going through the previous forms. This can result in incomplete collection of information, incorrect assumptions about the information submitted by the attacker, or other problems that can impair the functioning of the application.", "external_references": [ { "external_id": "CAPEC-140", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/140.html" }, { "external_id": "CWE-372", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/372.html" } ], "id": "attack-pattern--750dc5a2-e3c4-42d7-ad8a-25a7d1116f03", "modified": "2020-07-30T00:00:00.000Z", "name": "Bypassing of Intermediate Forms in Multiple-Form Sets", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--649abc91-f615-4c9e-91c9-9e66131e2d78" ], "x_capec_domains": [ "Software" ], "x_capec_prerequisites": [ "The target must collect information from the user in a series of forms where each form has its own URL that the attacker can anticipate and the application must fail to detect attempts to access intermediate forms without first filling out the previous forms." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker exploits the functionality of cache technologies to cause specific data to be cached that aids the attackers' objectives. This describes any attack whereby an attacker places incorrect or harmful material in cache. The targeted cache can be an application's cache (e.g. a web browser cache) or a public cache (e.g. a DNS or ARP cache). Until the cache is refreshed, most applications or clients will treat the corrupted cache value as valid. This can lead to a wide range of exploits including redirecting web browsers towards sites that install malware and repeatedly incorrect calculations based on the incorrect value.", "external_references": [ { "external_id": "CAPEC-141", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/141.html" }, { "external_id": "CWE-348", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/348.html" }, { "external_id": "CWE-345", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/345.html" }, { "external_id": "CWE-349", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/349.html" }, { "external_id": "CWE-346", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/346.html" }, { "description": "Adversary-in-the-Middle: ARP Cache Poisoning", "external_id": "T1557.002", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1557/002" }, { "description": "Cache Poisoning", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Cache_Poisoning" }, { "description": "Wikipedia, The Wikimedia Foundation, Inc", "external_id": "REF-22", "source_name": "reference_from_CAPEC", "url": "http://en.wikipedia.org/wiki/DNS_cache_poisoning" }, { "description": "DNS Threats and DNS Weaknesses, DNSSEC", "external_id": "REF-23", "source_name": "reference_from_CAPEC", "url": "http://www.dnssec.net/dns-threats.php" }, { "description": "Wikipedia, The Wikimedia Foundation, Inc", "external_id": "REF-24", "source_name": "reference_from_CAPEC", "url": "http://en.wikipedia.org/wiki/ARP_spoofing" }, { "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)", "external_id": "REF-599", "source_name": "reference_from_CAPEC", "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/04-Authentication_Testing/06-Testing_for_Browser_Cache_Weaknesses.html" } ], "id": "attack-pattern--e244a53a-8c69-462c-8ff2-900a839d48cb", "modified": "2022-09-29T00:00:00.000Z", "name": "Cache Poisoning", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_can_follow_refs": [ "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "attack-pattern--ae3f2c33-9018-442e-9cc3-24d65c7f4974", "attack-pattern--d845a25b-b140-438c-91d7-30b709bb6e18", "attack-pattern--ba694895-a0cf-494e-ace2-bf3488330b80", "attack-pattern--efbf3dcf-9f19-45de-9f49-caa87fd34681" ], "x_capec_child_of_refs": [ "attack-pattern--2a6131f7-30af-4529-be4e-bc3b7bf22009" ], "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n In this example, an attacker sends request to a local DNS server to look up www.example .com. The associated IP address of www.example.com is 1.3.5.7.\n Local DNS usually caches IP addresses and do not go to remote DNS every time. Since the local record is not found, DNS server tries to connect to remote DNS for queries. However, before the remote DNS returns the right IP address 1.3.5.7, the attacker floods local DNS with crafted responses with IP address 2.4.6.8. The result is that 2.4.6.8 is stored in DNS cache. Meanwhile, 2.4.6.8 is associated with a malicious website www.maliciousexampsle.com\n When users connect to www.example.com, the local DNS will direct it to www.maliciousexample.com, this works as part of a Pharming attack.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify and explore caches: Use tools to sniff traffic and scan a network in order to locate application's cache (e.g. a web browser cache) or a public cache (e.g. a DNS or ARP cache) that may have vulnerabilities. Look for poisoning point in cache table entries.

  2. Techniques
    Run tools that check available entries in the cache.

Experiment

  1. Cause specific data to be cached: An attacker sends bogus request to the target, and then floods responses that trick a cache to remember malicious responses, which are wrong answers of queries.

  2. Techniques
    Intercept or modify a query, or send a bogus query with known credentials (such as transaction ID).

Exploit

  1. Redirect users to malicious website: As the attacker succeeds in exploiting the vulnerability, they are able to manipulate and interpose malicious response data to targeted victim queries.

  2. Techniques
    Intercept or modify a query, or send a bogus query with known credentials (such as transaction ID).
    Adversary-in-the-Middle attacks (CAPEC-94) intercept secure communication between two parties.
", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--ee604341-eb03-4b00-8188-26d6e999d6dc" ], "x_capec_prerequisites": [ "The attacker must be able to modify the value stored in a cache to match a desired value.", "The targeted application must not be able to detect the illicit modification of the cache and must trust the cache value in its calculations." ], "x_capec_skills_required": { "Medium": "To overwrite/modify targeted cache" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Disable client side caching.", "id": "course-of-action--b3bb35f0-3493-4d4b-bdb9-7d820a64f6e7", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-141-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--deba223b-a821-4baf-b653-5358be0f03c4", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b3bb35f0-3493-4d4b-bdb9-7d820a64f6e7", "spec_version": "2.1", "target_ref": "attack-pattern--e244a53a-8c69-462c-8ff2-900a839d48cb", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Listens for query replies on a network, and sends a notification via email when an entry changes.", "id": "course-of-action--f60e0fe1-d821-4df9-817e-4d2a91308464", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-141-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--2f3dd06d-6976-4324-8d3c-1523b5d6f23a", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f60e0fe1-d821-4df9-817e-4d2a91308464", "spec_version": "2.1", "target_ref": "attack-pattern--e244a53a-8c69-462c-8ff2-900a839d48cb", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "A domain name server translates a domain name (such as www.example.com) into an IP address that Internet hosts use to contact Internet resources. An adversary modifies a public DNS cache to cause certain names to resolve to incorrect addresses that the adversary specifies. The result is that client applications that rely upon the targeted cache for domain name resolution will be directed not to the actual address of the specified domain name but to some other address. Adversaries can use this to herd clients to sites that install malware on the victim's computer or to masquerade as part of a Pharming attack.", "external_references": [ { "external_id": "CAPEC-142", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/142.html" }, { "external_id": "CWE-348", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/348.html" }, { "external_id": "CWE-345", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/345.html" }, { "external_id": "CWE-349", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/349.html" }, { "external_id": "CWE-346", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/346.html" }, { "external_id": "CWE-350", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/350.html" }, { "description": "Compromise Infrastructure: DNS Server", "external_id": "T1584.002", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1584/002" }, { "description": "Wikipedia, The Wikimedia Foundation, Inc", "external_id": "REF-22", "source_name": "reference_from_CAPEC", "url": "http://en.wikipedia.org/wiki/DNS_cache_poisoning" }, { "description": "DNS Threats and DNS Weaknesses, DNSSEC", "external_id": "REF-23", "source_name": "reference_from_CAPEC", "url": "http://www.dnssec.net/dns-threats.php" }, { "description": "Vulnerability Note VU#800113, 2008--07---08, US CERT", "external_id": "REF-27", "source_name": "reference_from_CAPEC", "url": "http://www.kb.cert.org/vuls/id/800113#pat" } ], "id": "attack-pattern--ee604341-eb03-4b00-8188-26d6e999d6dc", "modified": "2022-09-29T00:00:00.000Z", "name": "DNS Cache Poisoning", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_precede_refs": [ "attack-pattern--5dec633b-7b10-4bfe-9270-e68b98112285" ], "x_capec_child_of_refs": [ "attack-pattern--e244a53a-8c69-462c-8ff2-900a839d48cb" ], "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n In this example, an adversary sends request to a local DNS server to look up www.example .com. The associated IP address of www.example.com is 1.3.5.7.\n Local DNS usually caches IP addresses and do not go to remote DNS every time. Since the local record is not found, DNS server tries to connect to remote DNS for queries. However, before the remote DNS returns the right IP address 1.3.5.7, the adversary floods local DNS with crafted responses with IP address 2.4.6.8. The result is that 2.4.6.8 is stored in DNS cache. Meanwhile, 2.4.6.8 is associated with a malicious website www.maliciousexampsle.com\n When users connect to www.example.com, the local DNS will direct it to www.maliciousexample.com, this works as part of a Pharming attack.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Explore resolver caches: Check DNS caches on local DNS server and client's browser with DNS cache enabled.

  2. Techniques
    Run tools that check the resolver cache in the memory to see if it contains a target DNS entry.
    Figure out if the client's browser has DNS cache enabled.

Experiment

  1. Attempt sending crafted records to DNS cache: A request is sent to the authoritative server for target website and wait for the iterative name resolver. An adversary sends bogus request to the DNS local server, and then floods responses that trick a DNS cache to remember malicious responses, which are wrong answers of DNS query.

  2. Techniques
    Adversary must know the transaction ID by intercepting a DNS query, or sending a bogus query with known transaction ID.
    If the transaction ID used to identify each query instance is randomized in some new DNS software, the attack must guess the transaction ID. Slow the response of the real DNS server by causing Denial-of-service. This gives adversaries enough time to guess transaction
    Adversary crafts DNS response with the same transaction ID as in the request. The adversary sends out DNS responses before the authorized DNS server. This forces DNS local cache stores fake DNS response (wrong answer). The fake DNS responses usually include a malicious website's IP address.

Exploit

  1. Redirect users to malicious website: As the adversary succeeds in exploiting the vulnerability, the victim connects to a malicious site using a good web site's domain name.

  2. Techniques
    Redirecting Web traffic to a site that looks enough like the original so as to not raise any suspicion.
    Adversary-in-the-Middle (CAPEC-94) intercepts secure communication between two parties.
", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "A DNS cache must be vulnerable to some attack that allows the adversary to replace addresses in its lookup table.Client applications must trust the corrupted cashed values and utilize them for their domain name resolutions." ], "x_capec_resources_required": [ "The adversary must have the resources to modify the targeted cache. In addition, in most cases the adversary will wish to host the sites to which users will be redirected, although in some cases redirecting to a third party site will accomplish the adversary's goals." ], "x_capec_skills_required": { "Medium": "To overwrite/modify targeted DNS cache" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Make sure your DNS servers have been updated to the latest versions", "id": "course-of-action--1643a615-4b7c-4a23-a477-7d01dbf9fe9d", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-142-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8b310b70-cd48-479c-a4a6-1e9a513c96ea", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--1643a615-4b7c-4a23-a477-7d01dbf9fe9d", "spec_version": "2.1", "target_ref": "attack-pattern--ee604341-eb03-4b00-8188-26d6e999d6dc", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: UNIX services like rlogin, rsh/rcp, xhost, and nfs are all susceptible to wrong information being held in a cache. Care should be taken with these services so they do not rely upon DNS caches that have been exposed to the Internet.", "id": "course-of-action--d2e06ab9-42c0-4da5-93f2-f6200862bebc", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-142-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d75a59b5-0380-4139-9922-641a68593944", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--d2e06ab9-42c0-4da5-93f2-f6200862bebc", "spec_version": "2.1", "target_ref": "attack-pattern--ee604341-eb03-4b00-8188-26d6e999d6dc", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configuration: Disable client side DNS caching.", "id": "course-of-action--7e7fd1bf-64be-4c80-a438-60deb39ef6cf", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-142-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--f3632005-d0b9-4ed4-b5c5-337170c60644", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--7e7fd1bf-64be-4c80-a438-60deb39ef6cf", "spec_version": "2.1", "target_ref": "attack-pattern--ee604341-eb03-4b00-8188-26d6e999d6dc", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary searches a targeted web site for web pages that have not been publicized. In doing this, the adversary may be able to gain access to information that the targeted site did not intend to make public.", "external_references": [ { "external_id": "CAPEC-143", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/143.html" }, { "external_id": "CWE-425", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/425.html" } ], "id": "attack-pattern--a20a3cc9-4a6a-4376-a2b4-777ee9df2a34", "modified": "2023-01-24T00:00:00.000Z", "name": "Detect Unpublicized Web Pages", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--797f4b4e-371a-4d06-9e98-5cccb8a7ebc1" ], "x_capec_domains": [ "Software" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Find target web site: An adversary finds a target web site that they think may have unpublicized web pages

  2. Map the published web site: The adversary will map the published web site either by using an automated tool or by manually accessing well-known debugging or logging pages, or otherwise predictable pages within the site tree

  3. Techniques
    Use Dirbuster to brute force directories and file names to find unpublicized pages
    Find a pattern in the naming of documents and extrapolate this pattern to discover additional documents that have been created but are no longer externally linked

Experiment

  1. Try to find weaknesses or information: The adversary will try to find weaknesses or information on the unpublicized pages that the targeted site did not intend to be public

  2. Techniques
    Manually analyze files or pages for information that could be useful in a further attack
    Use a static analysis tool to find weaknesses in unpublished web pages

Exploit

  1. Follow-up attack: Use any information or weaknesses found to carry out a follow-up attack

", "x_capec_prerequisites": [ "The targeted web site must include pages within its published tree that are not connected to its tree of links. The sensitivity of the content of these pages determines the severity of this attack." ], "x_capec_resources_required": [ "Spidering tools to explore the target web site are extremely useful in this attack especially when attacking large sites. Some tools might also be able to automatically construct common page locations from known paths." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Low", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary searches a targeted web site for web services that have not been publicized. This attack can be especially dangerous since unpublished but available services may not have adequate security controls placed upon them given that an administrator may believe they are unreachable.", "external_references": [ { "external_id": "CAPEC-144", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/144.html" }, { "external_id": "CWE-425", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/425.html" } ], "id": "attack-pattern--af65cbd9-cc10-4c4f-9cc3-843941cdf357", "modified": "2023-01-24T00:00:00.000Z", "name": "Detect Unpublicized Web Services", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--797f4b4e-371a-4d06-9e98-5cccb8a7ebc1" ], "x_capec_domains": [ "Software" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Find target web site: An adversary finds a target web site that they think may have unpublicized web services

  2. Map the published web site: The adversary will map the published web site either by using an automated tool or by manually accessing well-known debugging or logging pages, or otherwise predictable pages within the site tree

  3. Techniques
    Use Dirbuster to brute force directories and file names to find unpublicized web services
    Find a pattern in the naming of documents and extrapolate this pattern to discover additional documents that have been created but are no longer externally linked

Experiment

  1. Try to find weaknesses or information: The adversary will try to find weaknesses in the unpublicized services that the targeted site did not intend to be public

  2. Techniques
    Use Nikto to look for web service vulnerabilities

Exploit

  1. Follow-up attack: Use any information or weaknesses found to carry out a follow-up attack

", "x_capec_prerequisites": [ "The targeted web site must include unpublished services within its web tree. The nature of these services determines the severity of this attack." ], "x_capec_resources_required": [ "Spidering tools to explore the target web site are extremely useful in this attack especially when attacking large sites. Some tools might also be able to automatically construct common service queries from known paths." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Low", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary spoofs a checksum message for the purpose of making a payload appear to have a valid corresponding checksum. Checksums are used to verify message integrity. They consist of some value based on the value of the message they are protecting. Hash codes are a common checksum mechanism. Both the sender and recipient are able to compute the checksum based on the contents of the message. If the message contents change between the sender and recipient, the sender and recipient will compute different checksum values. Since the sender's checksum value is transmitted with the message, the recipient would know that a modification occurred. In checksum spoofing an adversary modifies the message body and then modifies the corresponding checksum so that the recipient's checksum calculation will match the checksum (created by the adversary) in the message. This would prevent the recipient from realizing that a change occurred.", "external_references": [ { "external_id": "CAPEC-145", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/145.html" }, { "external_id": "CWE-354", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/354.html" } ], "id": "attack-pattern--9d8a9dc3-5115-43c3-a5ec-8003e7b97b2e", "modified": "2019-04-04T00:00:00.000Z", "name": "Checksum Spoofing", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--bd4f8f46-1bc7-40a9-b15a-e36b7671cf5b" ], "x_capec_domains": [ "Software" ], "x_capec_prerequisites": [ "The adversary must be able to intercept a message from the sender (keeping the recipient from getting it), modify it, and send the modified message to the recipient.", "The sender and recipient must use a checksum to protect the integrity of their message and transmit this checksum in a manner where the adversary can intercept and modify it.", "The checksum value must be computable using information known to the adversary. A cryptographic checksum, which uses a key known only to the sender and recipient, would thwart this attack." ], "x_capec_resources_required": [ "The adversary must have a utility that can intercept and modify messages between the sender and recipient." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary corrupts or modifies the content of XML schema information passed between a client and server for the purpose of undermining the security of the target. XML Schemas provide the structure and content definitions for XML documents. Schema poisoning is the ability to manipulate a schema either by replacing or modifying it to compromise the programs that process documents that use this schema.", "external_references": [ { "external_id": "CAPEC-146", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/146.html" }, { "external_id": "CWE-15", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/15.html" }, { "external_id": "CWE-472", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/472.html" } ], "id": "attack-pattern--ebf4bdc7-73dd-47c4-96e1-1ff471efbcd2", "modified": "2022-09-29T00:00:00.000Z", "name": "XML Schema Poisoning", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--41cfbb50-1b96-4004-a42e-6e8d21dd6f87" ], "x_capec_consequences": { "Availability": [ "Unreliable Execution (A successful schema poisoning attack can compromise the availability of the target system's service by exhausting its available resources.)", "Resource Consumption (A successful schema poisoning attack can compromise the availability of the target system's service by exhausting its available resources.)" ], "Confidentiality": [ "Read Data" ], "Integrity": [ "Modify Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n XML Schema Poisoning Attacks can often occur locally due to being embedded within the XML document itself or being located on the host within an improperaly protected file. In these cases, the adversary can simply edit the XML schema without the need for additional privileges. An example of the former can be seen below:\n ]> John Smith 555-1234 jsmith@email.com
1 Example Lane
\n If the 'name' attribute is required in all submitted documents and this field is removed by the adversary, the application may enter an unexpected state or record incomplete data. Additionally, if this data is needed to perform additional functions, a Denial of Service (DOS) may occur.\n ", "\n XML Schema Poisoning Attacks can also be executed remotely if the HTTP protocol is being used to transport data. :\n John Smith 555-1234 jsmith@email.com
1 Example Lane
\n The HTTP protocol does not encrypt the traffic it transports, so all communication occurs in plaintext. This traffic can be observed and modified by the adversary during transit to alter the XML schema before it reaches the end user. The adversary can perform a Adversary-in-the-Middle (CAPEC-94) Attack to alter the schema in the same way as the previous example and to acheive the same results.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine if XML schema is local or remote: Because this attack differs slightly if the target uses remote XML schemas versus local schemas, the adversary first needs to determine which of the two are used.

Experiment

  1. Gain access to XML schema: The adversary gains access to the XML schema so that they can modify the contents.

  2. Techniques
    For a local scenario, the adversary needs access to the machine that the schema is located on and needs to gain permissions to alter the contents of the file.
    For a remote scenario, the adversary needs to be able to sniff HTTP traffic that contains an XML schema.

Exploit

  1. Poison XML schema: Once the adversary gains access to the XML schema, they will alter it to achieve a desired effect. Locally, they can simply modify the file. For remote schemas, the adversary will alter the schema in transit by performing an adversary in the middle attack.

  2. Techniques
    Cause a denial of service by modifying the schema so that it does not contain required information for subsequent processing. For example, the unaltered schema may require a @name attribute in all submitted documents. If the adversary removes this attribute from the schema then documents created using the new grammar may lack this field, which may cause the processing application to enter an unexpected state or record incomplete data.
    Manipulation of the data types described in the schema may affect the results of calculations. For example, a float field could be changed to an int field.
    Change the encoding defined in the schema for certain fields allowing the contents to bypass filters that scan for dangerous strings. For example, the modified schema might use a URL encoding instead of ASCII, and a filter that catches a semicolon (;) might fail to detect its URL encoding (%3B).
", "x_capec_likelihood_of_attack": "Low", "x_capec_prerequisites": [ "Some level of access to modify the target schema.", "The schema used by the target application must be improperly secured against unauthorized modification and manipulation." ], "x_capec_resources_required": [ "Access to the schema and the knowledge and ability modify it. Ability to replace or redirect access to the modified schema." ], "x_capec_status": "Stable", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Protect the schema against unauthorized modification.", "id": "course-of-action--c36e13c8-5f07-493b-9093-bc3656142e52", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-146-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--aa8c2087-a10b-40c8-aa4d-00be4324dda2", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--c36e13c8-5f07-493b-9093-bc3656142e52", "spec_version": "2.1", "target_ref": "attack-pattern--ebf4bdc7-73dd-47c4-96e1-1ff471efbcd2", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: For applications that use a known schema, use a local copy or a known good repository instead of the schema reference supplied in the XML document. Additionally, ensure that the proper permissions are set on local files to avoid unauthorized modification.", "id": "course-of-action--bdd2a92c-5b73-40d3-ad60-b046cf2aa3de", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-146-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8075cef3-6e2d-40ac-9e91-b9a4e17b5460", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--bdd2a92c-5b73-40d3-ad60-b046cf2aa3de", "spec_version": "2.1", "target_ref": "attack-pattern--ebf4bdc7-73dd-47c4-96e1-1ff471efbcd2", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: For applications that leverage remote schemas, use the HTTPS protocol to prevent modification of traffic in transit and to avoid unauthorized modification.", "id": "course-of-action--64ccbe5a-017d-44f3-9f60-79e90c24af52", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-146-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--03fec1aa-4921-455b-89f5-01af59405338", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--64ccbe5a-017d-44f3-9f60-79e90c24af52", "spec_version": "2.1", "target_ref": "attack-pattern--ebf4bdc7-73dd-47c4-96e1-1ff471efbcd2", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker initiates a resource depletion attack where a large number of small XML messages are delivered at a sufficiently rapid rate to cause a denial of service or crash of the target. Transactions such as repetitive SOAP transactions can deplete resources faster than a simple flooding attack because of the additional resources used by the SOAP protocol and the resources necessary to process SOAP messages. The transactions used are immaterial as long as they cause resource utilization on the target. In other words, this is a normal flooding attack augmented by using messages that will require extra processing on the target.", "external_references": [ { "external_id": "CAPEC-147", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/147.html" }, { "external_id": "CWE-400", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/400.html" }, { "external_id": "CWE-770", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/770.html" } ], "id": "attack-pattern--94238840-08ad-4117-8a20-ed359cda1e7e", "modified": "2018-07-31T00:00:00.000Z", "name": "XML Ping of the Death", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--ad3913be-6ca6-48e6-9e3b-7b67e4162612" ], "x_capec_consequences": { "Availability": [ "Resource Consumption (DoS: resource consumption (other))" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "Consider the case of attack performed against the createCustomerBillingAccount Web Service for an online store. In this case, the createCustomerBillingAccount Web Service receives a huge number of simultaneous requests, containing nonsense billing account creation information (the small XML messages). The createCustomerBillingAccount Web Services may forward the messages to other Web Services for processing. The application suffers from a high load of requests, potentially leading to a complete loss of availability the involved Web Service." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the target: Using a browser or an automated tool, an attacker records all instance of web services to process XML requests.

  2. Techniques
    Use an automated tool to record all instances of URLs to process XML requests.
    Use a browser to manually explore the website and analyze how the application processes XML requests.

Exploit

  1. Launch a resource depletion attack: The attacker delivers a large number of small XML messages to the target URLs found in the explore phase at a sufficiently rapid rate. It causes denial of service to the target application.

  2. Techniques
    Send a large number of crafted small XML messages to the target URL.
", "x_capec_likelihood_of_attack": "Low", "x_capec_prerequisites": [ "The target must receive and process XML transactions." ], "x_capec_resources_required": [ "Transaction generator(s)/source(s) and ability to cause arrival of messages at the target with sufficient rapidity to overload target. Larger targets may be able to handle large volumes of requests so the attacker may require significant resources (such as a distributed network) to affect the target. However, the resources required of the attacker would be less than in the case of a simple flooding attack against the same target." ], "x_capec_skills_required": { "High": "To use distributed network to launch the attack", "Low": "To send small XML messages" }, "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Build throttling mechanism into the resource allocation. Provide for a timeout mechanism for allocated resources whose transaction does not complete within a specified interval.", "id": "course-of-action--098aadf6-648b-4c3a-bbf9-224e6bd430fd", "modified": "2018-07-31T00:00:00.000Z", "name": "coa-147-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--cfd5f6e5-9782-45a5-9d8c-a1883c4b6d34", "modified": "2018-07-31T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--098aadf6-648b-4c3a-bbf9-224e6bd430fd", "spec_version": "2.1", "target_ref": "attack-pattern--94238840-08ad-4117-8a20-ed359cda1e7e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Provide for network flow control and traffic shaping to control access to the resources.", "id": "course-of-action--ba0208fb-20e5-4c4f-9a93-d5d806d038e6", "modified": "2018-07-31T00:00:00.000Z", "name": "coa-147-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--2d06b870-3a8b-4f06-aa89-258fb7aec1e8", "modified": "2018-07-31T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--ba0208fb-20e5-4c4f-9a93-d5d806d038e6", "spec_version": "2.1", "target_ref": "attack-pattern--94238840-08ad-4117-8a20-ed359cda1e7e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary modifies content to make it contain something other than what the original content producer intended while keeping the apparent source of the content unchanged. The term content spoofing is most often used to describe modification of web pages hosted by a target to display the adversary's content instead of the owner's content. However, any content can be spoofed, including the content of email messages, file transfers, or the content of other network communication protocols. Content can be modified at the source (e.g. modifying the source file for a web page) or in transit (e.g. intercepting and modifying a message between the sender and recipient). Usually, the adversary will attempt to hide the fact that the content has been modified, but in some cases, such as with web site defacement, this is not necessary. Content Spoofing can lead to malware exposure, financial fraud (if the content governs financial transactions), privacy violations, and other unwanted outcomes.", "external_references": [ { "external_id": "CAPEC-148", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/148.html" }, { "external_id": "CWE-345", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/345.html" }, { "description": "Defacement", "external_id": "T1491", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1491" }, { "description": "Content Spoofing", "external_id": "12", "source_name": "WASC", "url": "http://projects.webappsec.org/Content-Spoofing" }, { "description": "Content Spoofing", "source_name": "OWASP Attacks", "url": "https://owasp.org/www-community/attacks/Content_Spoofing" } ], "id": "attack-pattern--bd4f8f46-1bc7-40a9-b15a-e36b7671cf5b", "modified": "2022-09-29T00:00:00.000Z", "name": "Content Spoofing", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_can_follow_refs": [ "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "attack-pattern--ae3f2c33-9018-442e-9cc3-24d65c7f4974", "attack-pattern--d845a25b-b140-438c-91d7-30b709bb6e18", "attack-pattern--ba694895-a0cf-494e-ace2-bf3488330b80", "attack-pattern--8c806dfa-b8ca-45f9-9f97-09e4b5c1157b", "attack-pattern--3491dd54-d586-4f3d-80c1-9576ee48236b" ], "x_capec_consequences": { "Integrity": [ "Modify Data (A successful content spoofing attack compromises the integrity of the application data.)" ] }, "x_capec_domains": [ "Communications", "Software", "Hardware" ], "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--9d8a9dc3-5115-43c3-a5ec-8003e7b97b2e", "attack-pattern--e7c0cce1-203e-454d-8a9a-76fa7ca120f8", "attack-pattern--b2e8de4b-6757-4e7e-9c5c-210c44100577", "attack-pattern--2e1be870-6442-4978-9a30-46d518aa1f74" ], "x_capec_prerequisites": [ "The target must provide content but fail to adequately protect it against modification.The adversary must have the means to alter data to which they are not authorized. If the content is to be modified in transit, the adversary must be able to intercept the targeted messages." ], "x_capec_resources_required": [ "\n If the content is to be modified in transit, the adversary requires a tool capable of intercepting the target's communication and generating/creating custom packets to impact the communications.\n In some variants, the targeted content is altered so that all or some of it is redirected towards content published by the attacker (for example, images and frames in the target's web site might be modified to be loaded from a source controlled by the attacker). In these cases, the attacker requires the necessary resources to host the replacement content.\n " ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker explores a target to identify the names and locations of predictable temporary files for the purpose of launching further attacks against the target. This involves analyzing naming conventions and storage locations of the temporary files created by a target application. If an attacker can predict the names of temporary files they can use this information to mount other attacks, such as information gathering and symlink attacks.", "external_references": [ { "external_id": "CAPEC-149", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/149.html" }, { "external_id": "CWE-377", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/377.html" } ], "id": "attack-pattern--bddd2549-167f-4f7b-8d0f-6d1e647b26f6", "modified": "2023-01-24T00:00:00.000Z", "name": "Explore for Predictable Temporary File Names", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_precede_refs": [ "attack-pattern--7fea6e82-183a-4811-9b71-1ebe4d6c8b11" ], "x_capec_child_of_refs": [ "attack-pattern--323ed142-7793-413d-838f-72626caf58da" ], "x_capec_domains": [ "Software" ], "x_capec_prerequisites": [ "The targeted application must create names for temporary files using a predictable procedure, e.g. using sequentially increasing numbers.", "The attacker must be able to see the names of the files the target is creating." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attack of this type exploits a programs' vulnerabilities that allows an attacker's commands to be concatenated onto a legitimate command with the intent of targeting other resources such as the file system or database. The system that uses a filter or denylist input validation, as opposed to allowlist validation is vulnerable to an attacker who predicts delimiters (or combinations of delimiters) not present in the filter or denylist. As with other injection attacks, the attacker uses the command delimiter payload as an entry point to tunnel through the application and activate additional attacks through SQL queries, shell commands, network scanning, and so on.", "external_references": [ { "external_id": "CAPEC-15", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/15.html" }, { "external_id": "CWE-146", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/146.html" }, { "external_id": "CWE-77", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/77.html" }, { "external_id": "CWE-184", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/184.html" }, { "external_id": "CWE-78", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/78.html" }, { "external_id": "CWE-185", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/185.html" }, { "external_id": "CWE-93", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/93.html" }, { "external_id": "CWE-140", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/140.html" }, { "external_id": "CWE-157", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/157.html" }, { "external_id": "CWE-138", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/138.html" }, { "external_id": "CWE-154", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/154.html" }, { "external_id": "CWE-697", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/697.html" }, { "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley", "external_id": "REF-1", "source_name": "reference_from_CAPEC" } ], "id": "attack-pattern--582943a5-d66c-48a9-8cf8-76e511222c7d", "modified": "2021-06-24T00:00:00.000Z", "name": "Command Delimiters", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--cde07b71-23e6-418d-93e9-665f5f83b032" ], "x_capec_consequences": { "Availability": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ], "Confidentiality": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Read Data" ], "Integrity": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n By appending special characters, such as a semicolon or other commands that are executed by the target process, the attacker is able to execute a wide variety of malicious commands in the target process space, utilizing the target's inherited permissions, against any resource the host has access to. The possibilities are vast including injection attacks against RDBMS (SQL Injection), directory servers (LDAP Injection), XML documents (XPath and XQuery Injection), and command line shells. In many injection attacks, the results are converted back to strings and displayed to the client process such as a web browser without tripping any security alarms, so the network firewall does not log any out of the ordinary behavior.\n LDAP servers house critical identity assets such as user, profile, password, and group information that is used to authenticate and authorize users. An attacker that can query the directory at will and execute custom commands against the directory server is literally working with the keys to the kingdom in many enterprises. When user, organizational units, and other directory objects are queried by building the query string directly from user input with no validation, or other conversion, then the attacker has the ability to use any LDAP commands to query, filter, list, and crawl against the LDAP server directly in the same manner as SQL injection gives the ability to the attacker to run SQL commands on the database.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Assess Target Runtime Environment: In situations where the runtime environment is not implicitly known, the attacker makes connections to the target system and tries to determine the system's runtime environment. Knowing the environment is vital to choosing the correct delimiters.

  2. Techniques
    Port mapping using network connection-based software (e.g., nmap, nessus, etc.)
    Port mapping by exploring the operating system (netstat, sockstat, etc.)
    TCP/IP Fingerprinting
    Induce errors to find informative error messages
  3. Survey the Application: The attacker surveys the target application, possibly as a valid and authenticated user

  4. Techniques
    Spidering web sites for all available links
    Inventory all application inputs

Experiment

  1. Attempt delimiters in inputs: The attacker systematically attempts variations of delimiters on known inputs, observing the application's response each time.

  2. Techniques
    Inject command delimiters using network packet injection tools (netcat, nemesis, etc.)
    Inject command delimiters using web test frameworks (proxies, TamperData, custom programs, etc.)
    Enter command delimiters directly in input fields.

Exploit

  1. Use malicious command delimiters: The attacker uses combinations of payload and carefully placed command delimiters to attack the software.

", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--70c8a212-72da-4a98-a626-e5d38e5416e3" ], "x_capec_prerequisites": [ "Software's input validation or filtering must not detect and block presence of additional malicious command." ], "x_capec_resources_required": [ "Ability to communicate synchronously or asynchronously with server. Optionally, ability to capture output directly through synchronous communication or other method such as FTP." ], "x_capec_skills_required": { "Medium": "The attacker has to identify injection vector, identify the specific commands, and optionally collect the output, i.e. from an interactive session." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Perform allowlist validation against a positive specification for command length, type, and parameters.", "id": "course-of-action--e5c4fb82-e889-429a-a343-f75a01e515dd", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-15-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--08d4d25a-ee13-4f19-b709-f7bbafb7d0d9", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e5c4fb82-e889-429a-a343-f75a01e515dd", "spec_version": "2.1", "target_ref": "attack-pattern--582943a5-d66c-48a9-8cf8-76e511222c7d", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Limit program privileges, so if commands circumvent program input validation or filter routines then commands do not running under a privileged account", "id": "course-of-action--461e2128-8614-4665-acaa-4090f980504d", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-15-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--3ab83c6e-5e54-4214-be2d-b4a9cb52405f", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--461e2128-8614-4665-acaa-4090f980504d", "spec_version": "2.1", "target_ref": "attack-pattern--582943a5-d66c-48a9-8cf8-76e511222c7d", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Perform input validation for all remote content.", "id": "course-of-action--8a996efc-52e0-4aaf-953a-21c3fe64c64b", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-15-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--78b9961e-bbb1-4c40-9286-e4eedbba14bc", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--8a996efc-52e0-4aaf-953a-21c3fe64c64b", "spec_version": "2.1", "target_ref": "attack-pattern--582943a5-d66c-48a9-8cf8-76e511222c7d", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Use type conversions such as JDBC prepared statements.", "id": "course-of-action--d27b9ab5-05c1-40d5-9fc3-cbcd2c723a00", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-15-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--18b1ee44-40f2-43f7-97d1-56bde0108bbd", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--d27b9ab5-05c1-40d5-9fc3-cbcd2c723a00", "spec_version": "2.1", "target_ref": "attack-pattern--582943a5-d66c-48a9-8cf8-76e511222c7d", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary exploits well-known locations for resources for the purposes of undermining the security of the target. In many, if not most systems, files and resources are organized in a default tree structure. This can be useful for adversaries because they often know where to look for resources or files that are necessary for attacks. Even when the precise location of a targeted resource may not be known, naming conventions may indicate a small area of the target machine's file tree where the resources are typically located. For example, configuration files are normally stored in the /etc director on Unix systems. Adversaries can take advantage of this to commit other types of attacks.", "external_references": [ { "external_id": "CAPEC-150", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/150.html" }, { "external_id": "CWE-552", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/552.html" }, { "external_id": "CWE-1239", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1239.html" }, { "external_id": "CWE-1258", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1258.html" }, { "external_id": "CWE-1266", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1266.html" }, { "external_id": "CWE-1272", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1272.html" }, { "external_id": "CWE-1323", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1323.html" }, { "external_id": "CWE-1330", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1330.html" }, { "description": "OS Credential Dumping", "external_id": "T1003", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1003" }, { "description": "Automated Collection", "external_id": "T1119", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1119" }, { "description": "Data from Information Repositories", "external_id": "T1213", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1213" }, { "description": "Data from Cloud Storage Object", "external_id": "T1530", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1530" }, { "description": "Credentials from Password Stores", "external_id": "T1555", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1555" }, { "description": "Data from Configuration Repository", "external_id": "T1602", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1602" } ], "id": "attack-pattern--797f4b4e-371a-4d06-9e98-5cccb8a7ebc1", "modified": "2023-01-24T00:00:00.000Z", "name": "Collect Data from Common Resource Locations", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--913426fa-ea1f-43b0-8492-1d363ea109d6" ], "x_capec_domains": [ "Software", "Physical Security", "Hardware" ], "x_capec_example_instances": [ "An adversary can use a technique called Bluesnarfing to retrieve data from Bluetooth enabled devices in which they know where the data is located. This is done by connecting to the device’s Object Exchange (OBEX) Push Profile and making OBEX GET requests for known filenames (contact lists, photos, recent calls). Bluesnarfing was patched shortly after its discovery in 2003 and will only work on devices created before or during this time." ], "x_capec_parent_of_refs": [ "attack-pattern--a20a3cc9-4a6a-4376-a2b4-777ee9df2a34", "attack-pattern--af65cbd9-cc10-4c4f-9cc3-843941cdf357", "attack-pattern--7fea6e82-183a-4811-9b71-1ebe4d6c8b11", "attack-pattern--756a1a93-3734-426c-9e91-f9339de74a7a", "attack-pattern--60ceb889-a284-44bb-ae05-4b7e347e1597", "attack-pattern--ad242ccf-3578-4787-937c-22eb0ede3fb6", "attack-pattern--140142cc-28cb-4506-bce6-b44128b7b9a7" ], "x_capec_prerequisites": [ "The targeted applications must either expect files to be located at a specific location or, if the location of the files can be configured by the user, the user either failed to move the files from the default location or placed them in a conventional location for files of the given type." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack. In some cases, the attacker need not even have direct access to the locations on the target computer where the targeted resources reside." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Identity Spoofing refers to the action of assuming (i.e., taking on) the identity of some other entity (human or non-human) and then using that identity to accomplish a goal. An adversary may craft messages that appear to come from a different principle or use stolen / spoofed authentication credentials.", "external_references": [ { "external_id": "CAPEC-151", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/151.html" }, { "external_id": "CWE-287", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/287.html" } ], "id": "attack-pattern--22802ed6-ddc6-4da7-b6be-60b10d26198b", "modified": "2022-02-22T00:00:00.000Z", "name": "Identity Spoofing", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_can_follow_refs": [ "attack-pattern--a9dc4914-409a-4f71-80df-c5cc3923d112", "attack-pattern--8d88a81c-bde9-4fb3-acbe-901c783d6427", "attack-pattern--addd93c9-9278-4185-b402-e505d632c815", "attack-pattern--9197c7a2-6a03-40da-b2a6-df5f1d69e8fb", "attack-pattern--a390cb72-b4de-4750-ae05-be556c89f4be", "attack-pattern--06e8782a-87af-4863-b6b1-99e09edda3be", "attack-pattern--886a7175-e28a-4e6d-bd22-3b1497e31dc7", "attack-pattern--f2654def-b86d-4ddb-888f-de6b50a103a2", "attack-pattern--f724f0f3-20e6-450c-be4a-f373ea08834d", "attack-pattern--fab7fb48-4503-4e03-980f-9bc827be929f", "attack-pattern--03a731ef-751b-43de-9159-9667d4be4d1a", "attack-pattern--056a463d-6303-438e-a43f-992cee52fb95", "attack-pattern--05740120-81ef-4224-9805-2f0b54d1111f", "attack-pattern--755bb5ac-2eee-4e54-9864-92812666120c", "attack-pattern--2618d0a4-06d0-4bde-8271-2df61ed8297a", "attack-pattern--8c7bab16-5ecd-4778-9b04-c185bceed170", "attack-pattern--3491dd54-d586-4f3d-80c1-9576ee48236b", "attack-pattern--38964770-4f39-4191-89cf-73a625162b2b" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authentication": [ "Gain Privileges" ], "Confidentiality": [ "Gain Privileges" ], "Integrity": [ "Gain Privileges" ] }, "x_capec_domains": [ "Social Engineering", "Communications", "Software", "Hardware" ], "x_capec_extended_description": "\n Alternatively, an adversary may intercept a message from a legitimate sender and attempt to make it look like the message comes from them without changing its content. The latter form of this attack can be used to hijack credentials from legitimate users. Identity Spoofing attacks need not be limited to transmitted messages - any resource that is associated with an identity (for example, a file with a signature) can be the target of an attack where the adversary attempts to change the apparent identity. This attack differs from Content Spoofing attacks where the adversary does not wish to change the apparent identity of the message but instead wishes to change what the message says. In an Identity Spoofing attack, the adversary is attempting to change the identity of the content.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--862d18f1-a87c-4f1b-acc2-882697d5d6e5", "attack-pattern--8711eca6-b3ad-40b7-b7ac-08be37885119", "attack-pattern--d94762c1-3c78-47eb-8212-e0c770ba43a9", "attack-pattern--5dec633b-7b10-4bfe-9270-e68b98112285", "attack-pattern--a00c2cc2-bd4f-4594-9ec1-b021b62ac896" ], "x_capec_prerequisites": [ "The identity associated with the message or resource must be removable or modifiable in an undetectable way." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Employ robust authentication processes (e.g., multi-factor authentication).", "id": "course-of-action--a4ee4981-07bd-4a5d-bc5b-3159e9005c04", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-151-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--4e224ed0-2d80-495f-925d-d726a7fe4f81", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a4ee4981-07bd-4a5d-bc5b-3159e9005c04", "spec_version": "2.1", "target_ref": "attack-pattern--22802ed6-ddc6-4da7-b6be-60b10d26198b", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker exploits a weakness in input validation by controlling the format, structure, and composition of data to an input-processing interface. By supplying input of a non-standard or unexpected form an attacker can adversely impact the security of the target.", "external_references": [ { "external_id": "CAPEC-153", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/153.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" } ], "id": "attack-pattern--71d31712-9174-4433-8e4f-8520a3ec1249", "modified": "2022-02-22T00:00:00.000Z", "name": "Input Data Manipulation", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_domains": [ "Software" ], "x_capec_extended_description": "\n For example, using a different character encoding might cause dangerous text to be treated as safe text. Alternatively, the attacker may use certain flags, such as file extensions, to make a target application believe that provided data should be handled using a certain interpreter when the data is not actually of the appropriate type. This can lead to bypassing protection mechanisms, forcing the target to use specific components for input processing, or otherwise causing the user's data to be handled differently than might otherwise be expected. This attack differs from Variable Manipulation in that Variable Manipulation attempts to subvert the target's processing through the value of the input while Input Data Manipulation seeks to control how the input is processed.\n ", "x_capec_parent_of_refs": [ "attack-pattern--faf0ec21-da60-4efc-8c8e-7a6b63bea170", "attack-pattern--1f3b920a-a706-494c-9486-69531a514912", "attack-pattern--a1af7c24-25cb-46e5-a27b-ed316e1f91ce" ], "x_capec_prerequisites": [ "The target must accept user data for processing and the manner in which this data is processed must depend on some aspect of the format or flags that the attacker can control." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary deceives an application or user and convinces them to request a resource from an unintended location. By spoofing the location, the adversary can cause an alternate resource to be used, often one that the adversary controls and can be used to help them achieve their malicious goals.", "external_references": [ { "external_id": "CAPEC-154", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/154.html" }, { "external_id": "CWE-451", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/451.html" } ], "id": "attack-pattern--ce92f5b9-6228-4354-8a1b-72ad7ad3bb84", "modified": "2023-01-24T00:00:00.000Z", "name": "Resource Location Spoofing", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_can_follow_refs": [ "attack-pattern--b89511b6-f0fb-4c1d-a884-a0d5a0d82b4e", "attack-pattern--ae3f2c33-9018-442e-9cc3-24d65c7f4974", "attack-pattern--d845a25b-b140-438c-91d7-30b709bb6e18", "attack-pattern--ba694895-a0cf-494e-ace2-bf3488330b80" ], "x_capec_consequences": { "Authorization": [ "Execute Unauthorized Commands (Run Arbitrary Code)" ] }, "x_capec_domains": [ "Social Engineering", "Supply Chain", "Communications", "Software", "Hardware" ], "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--d16af13f-5e0f-4a6b-bc1f-23f733d2229b", "attack-pattern--e9d5d2e4-588f-43c1-bc98-73417abbb727" ], "x_capec_prerequisites": [ "None. All applications rely on file paths and therefore, in theory, they or their resources could be affected by this type of attack." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Monitor network activity to detect any anomalous or unauthorized communication exchanges.", "id": "course-of-action--eeb4d011-944b-4c48-9b7e-9cea2b3c86df", "modified": "2023-01-24T00:00:00.000Z", "name": "coa-154-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ef1a3b66-cfc8-4c92-9df9-237b586b11f2", "modified": "2023-01-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--eeb4d011-944b-4c48-9b7e-9cea2b3c86df", "spec_version": "2.1", "target_ref": "attack-pattern--ce92f5b9-6228-4354-8a1b-72ad7ad3bb84", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary exploits the temporary, insecure storage of information by monitoring the content of files used to store temp data during an application's routine execution flow. Many applications use temporary files to accelerate processing or to provide records of state across multiple executions of the application. Sometimes, however, these temporary files may end up storing sensitive information. By screening an application's temporary files, an adversary might be able to discover such sensitive information. For example, web browsers often cache content to accelerate subsequent lookups. If the content contains sensitive information then the adversary could recover this from the web cache.", "external_references": [ { "external_id": "CAPEC-155", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/155.html" }, { "external_id": "CWE-377", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/377.html" } ], "id": "attack-pattern--7fea6e82-183a-4811-9b71-1ebe4d6c8b11", "modified": "2021-10-21T00:00:00.000Z", "name": "Screen Temporary Files for Sensitive Information", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_follow_refs": [ "attack-pattern--bddd2549-167f-4f7b-8d0f-6d1e647b26f6" ], "x_capec_child_of_refs": [ "attack-pattern--797f4b4e-371a-4d06-9e98-5cccb8a7ebc1" ], "x_capec_domains": [ "Software" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Look for temporary files in target application: An adversary will try to discover temporary files in a target application. Knowledge of where the temporary files are being stored is important information.

Experiment

  1. Attempt to read temporary files: An adversary will attempt to read any temporary files they may have discovered through normal means.

  2. Techniques
    Attempt to get the file by querying the file path to a web server
    Using a remote shell into an application, read temporary files and send out information remotely if necessary
    Recover temporary information from a user's browser cache

Exploit

  1. Use function weaknesses to gain access to temporary files: If normal means to read temporary files did not work, an adversary will attempt to exploit weak temporary file functions to gain access to temporary files.

  2. Techniques
    Some C functions such as tmpnam(), tempnam(), and mktemp() will create a temporary file with a unique name, but do not stop an adversary from creating a file of the same name before it is opened by the application. Because these functions do not create file names that are sufficiently random, an adversary will try to make a file of the same name, causing a collision, and possibly altering file permissions for the temporary file so that it is able to be read.
    Similar to the last technique, an adversary might also create a file name collision using a linked file in a unix system such that the temporary file contents written out by the application write to a file of the adversaries choosing, allowing them to read the file contents.
", "x_capec_likelihood_of_attack": "Medium", "x_capec_prerequisites": [ "The target application must utilize temporary files and must fail to adequately secure them against other parties reading them." ], "x_capec_resources_required": [ "Because some application may have a large number of temporary files and/or these temporary files may be very large, an adversary may need tools that help them quickly search these files for sensitive information. If the adversary can simply copy the files to another location and if the speed of the search is not important, the adversary can still perform the attack without any special resources." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "In this attack pattern, the adversary intercepts information transmitted between two third parties. The adversary must be able to observe, read, and/or hear the communication traffic, but not necessarily block the communication or change its content. Any transmission medium can theoretically be sniffed if the adversary can examine the contents between the sender and recipient. Sniffing Attacks are similar to Adversary-In-The-Middle attacks (CAPEC-94), but are entirely passive. AiTM attacks are predominantly active and often alter the content of the communications themselves.", "external_references": [ { "external_id": "CAPEC-157", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/157.html" }, { "external_id": "CWE-311", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/311.html" } ], "id": "attack-pattern--bdcdc784-d891-4ca8-847b-38ddca37a6ec", "modified": "2022-02-22T00:00:00.000Z", "name": "Sniffing Attacks", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_can_precede_refs": [ "attack-pattern--755bb5ac-2eee-4e54-9864-92812666120c" ], "x_capec_child_of_refs": [ "attack-pattern--bdc2219a-ebe0-4372-90b8-841dd7bd4c8e" ], "x_capec_consequences": { "Confidentiality": [ "Read Data" ] }, "x_capec_domains": [ "Communications", "Software" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine Communication Mechanism: The adversary determines the nature and mechanism of communication between two components, looking for opportunities to exploit.

  2. Techniques
    Look for application documentation that might describe a communication mechanism used by a target.

Experiment

  1. Position In Between Targets: The adversary positions themselves somewhere in the middle of the two components. If the communication is encrypted, the adversary will need to act as a proxy and route traffic between the components, exploiting a flaw in the encryption mechanism. Otherwise, the adversary can just observe the communication at either end.

  2. Techniques
    Use Wireshark or some other packet capturing tool to capture traffic on a network.
    Install spyware on a client that will intercept outgoing packets and route them to their destination as well as route incoming packets back to the client.
    Exploit a weakness in an encrypted communication mechanism to gain access to traffic. Look for outdated mechanisms such as SSL.

Exploit

  1. Listen to Communication: The adversary observes communication, but does not alter or block it. The adversary gains access to sensitive information and can potentially utilize this information in a malicious way.

", "x_capec_parent_of_refs": [ "attack-pattern--897a5506-45bb-4f6f-96e7-55f4c0b9021a", "attack-pattern--cddb7bce-8d94-4eea-8e73-9f6ef66376c2", "attack-pattern--359d056e-6d5c-4d54-97d6-5a9f586bcccf", "attack-pattern--c7f0c73b-fe94-49c9-89bb-a3ec4441e4ee", "attack-pattern--3147f1c9-3043-40ca-ad42-c1be938820a4" ], "x_capec_prerequisites": [ "The target data stream must be transmitted on a medium to which the adversary has access." ], "x_capec_resources_required": [ "The adversary must be able to intercept the transmissions containing the data of interest. Depending on the medium of transmission and the path the data takes between the sender and recipient, the adversary may require special equipment and/or require that this equipment be placed in specific locations (e.g., a network sniffing tool)" ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Encrypt sensitive information when transmitted on insecure mediums to prevent interception.", "id": "course-of-action--8e8679ec-95e4-4391-abb4-9a40406a3476", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-157-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ec5d6642-3556-4d29-8f30-07ab3be9ab1a", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--8e8679ec-95e4-4391-abb4-9a40406a3476", "spec_version": "2.1", "target_ref": "attack-pattern--bdcdc784-d891-4ca8-847b-38ddca37a6ec", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "In this attack pattern, the adversary monitors network traffic between nodes of a public or multicast network in an attempt to capture sensitive information at the protocol level. Network sniffing applications can reveal TCP/IP, DNS, Ethernet, and other low-level network communication information. The adversary takes a passive role in this attack pattern and simply observes and analyzes the traffic. The adversary may precipitate or indirectly influence the content of the observed transaction, but is never the intended recipient of the target information.", "external_references": [ { "external_id": "CAPEC-158", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/158.html" }, { "external_id": "CWE-311", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/311.html" }, { "description": "Network Sniffing", "external_id": "T1040", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1040" }, { "description": "Multi-Factor Authentication Interception", "external_id": "T1111", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1111" } ], "id": "attack-pattern--897a5506-45bb-4f6f-96e7-55f4c0b9021a", "modified": "2022-09-29T00:00:00.000Z", "name": "Sniffing Network Traffic", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_follow_refs": [ "attack-pattern--c9b31907-c466-4325-af55-c418aea8b964" ], "x_capec_child_of_refs": [ "attack-pattern--bdcdc784-d891-4ca8-847b-38ddca37a6ec" ], "x_capec_consequences": { "Confidentiality": [ "Read Data" ] }, "x_capec_domains": [ "Communications", "Software" ], "x_capec_prerequisites": [ "The target must be communicating on a network protocol visible by a network sniffing application.", "The adversary must obtain a logical position on the network from intercepting target network traffic is possible. Depending on the network topology, traffic sniffing may be simple or challenging. If both the target sender and target recipient are members of a single subnet, the adversary must also be on that subnet in order to see their traffic communication." ], "x_capec_resources_required": [ "A tool with the capability of presenting network communication traffic (e.g., Wireshark, tcpdump, Cain and Abel, etc.)." ], "x_capec_skills_required": { "Low": "Adversaries can obtain and set up open-source network sniffing tools easily." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Obfuscate network traffic through encryption to prevent its readability by network sniffers.", "id": "course-of-action--26edfe3d-53cd-4d09-abbf-84ee7c48236f", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-158-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--28658fd8-29a0-4a6b-b8a9-d7a967352c4e", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--26edfe3d-53cd-4d09-abbf-84ee7c48236f", "spec_version": "2.1", "target_ref": "attack-pattern--897a5506-45bb-4f6f-96e7-55f4c0b9021a", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Employ appropriate levels of segmentation to your network in accordance with best practices.", "id": "course-of-action--3ca8bdc8-6a37-4294-acfe-2e658e9e0fe6", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-158-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d1c000a2-67f9-4572-af06-6707542d5784", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3ca8bdc8-6a37-4294-acfe-2e658e9e0fe6", "spec_version": "2.1", "target_ref": "attack-pattern--897a5506-45bb-4f6f-96e7-55f4c0b9021a", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary exploits a weakness in the way an application searches for external libraries to manipulate the execution flow to point to an adversary supplied library or code base. This pattern of attack allows the adversary to compromise the application or server via the execution of unauthorized code. An application typically makes calls to functions that are a part of libraries external to the application. These libraries may be part of the operating system or they may be third party libraries. If an adversary can redirect an application's attempts to access these libraries to other libraries that the adversary supplies, the adversary will be able to force the targeted application to execute arbitrary code. This is especially dangerous if the targeted application has enhanced privileges. Access can be redirected through a number of techniques, including the use of symbolic links, search path modification, and relative path manipulation.", "external_references": [ { "external_id": "CAPEC-159", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/159.html" }, { "external_id": "CWE-706", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/706.html" }, { "description": "Hijack Execution Flow:Path Interception by Search Order Hijacking", "external_id": "T1574.008", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1574/008" }, { "description": "Silvio Cesare, Share Library Call Redirection Via ELF PLT Infection (Issue 56), Phrack Magazine, 2000", "external_id": "REF-29", "source_name": "reference_from_CAPEC", "url": "http://phrack.org/issues/56/7.html" }, { "description": "OWASP Top 10 2007 (2007), The Open Web Application Security Project (OWASP)", "external_id": "REF-30", "source_name": "reference_from_CAPEC", "url": "https://www.owasp.org/www-pdf-archive/OWASP_Top_10_2007.pdf" } ], "id": "attack-pattern--d16af13f-5e0f-4a6b-bc1f-23f733d2229b", "modified": "2022-09-29T00:00:00.000Z", "name": "Redirect Access to Libraries", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_can_precede_refs": [ "attack-pattern--0123fa83-2d47-4398-85f1-30ce114abb9a" ], "x_capec_child_of_refs": [ "attack-pattern--ce92f5b9-6228-4354-8a1b-72ad7ad3bb84" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Authorization": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Bypass Protection Mechanism" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "In this example, the attacker using ELF infection that redirects the Procedure Linkage Table (PLT) of an executable allowing redirection to be resident outside of the infected executable. The algorithm at the entry point code is as follows... • mark the text segment writeable • save the PLT(GOT) entry • replace the PLT(GOT) entry with the address of the new lib call The algorithm in the new library call is as follows... • do the payload of the new lib call • restore the original PLT(GOT) entry • call the lib call • save the PLT(GOT) entry again (if its changed) • replace the PLT(GOT) entry with the address of the new lib call" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify Target: The adversary identifies the target application and determines what libraries are being used.

  2. Techniques
    Find public source code and identify library dependencies.
    Gain access to the system hosting the application and look for libraries in common locations.

Experiment

  1. Deploy Malicious Libraries: The adversary crafts malicious libraries and deploys them on the system where the application is running, or in a remote location that can be loaded by the application.

Exploit

  1. Redirect Library Calls to Malicious Library: Once the malicious library crafted by the adversary is deployed, the adversary will manipulate the flow of the application such that it calls the malicious library. This can be done in a variety of ways based on how the application is loading and calling libraries.

  2. Techniques
    Poison the DNS cache of the system so that it loads a malicious library from a remote location hosted by the adversary instead of the legitimate location
    Create a symlink that tricks the application into thinking that a malicious library is the legitimate library.
    Use DLL side-loading to place a malicious verison of a DLL in the windows directory.
", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--7cb5458d-b646-4a25-ad0a-4c3fabd70a65", "attack-pattern--2e603682-c08c-4af1-8e06-329dc8bbe4b4", "attack-pattern--abdd46ce-dd2d-4430-8032-aa3ee1d262fd", "attack-pattern--bfb6492a-7a88-47c4-aff9-2c8190265328" ], "x_capec_prerequisites": [ "The target must utilize external libraries and must fail to verify the integrity of these libraries before using them." ], "x_capec_skills_required": { "High": "To reverse engineering the libraries and inject malicious code into the libraries", "Low": "To modify the entries in the configuration file pointing to malicious libraries", "Medium": "To force symlink and timing issues for redirecting access to libraries" }, "x_capec_status": "Stable", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Restrict the permission to modify the entries in the configuration file.", "id": "course-of-action--f26a4acf-baf0-4bf2-a143-bc1b7c62e85f", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-159-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--cd6337df-a7bd-4afe-b168-4189a828cafb", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f26a4acf-baf0-4bf2-a143-bc1b7c62e85f", "spec_version": "2.1", "target_ref": "attack-pattern--d16af13f-5e0f-4a6b-bc1f-23f733d2229b", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Check the integrity of the dynamically linked libraries before use them.", "id": "course-of-action--3654cbd2-7f0f-4ca2-8104-ac4038549426", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-159-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--34ed3417-5e22-490d-b967-b77e3be13f50", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3654cbd2-7f0f-4ca2-8104-ac4038549426", "spec_version": "2.1", "target_ref": "attack-pattern--d16af13f-5e0f-4a6b-bc1f-23f733d2229b", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Use obfuscation and other techniques to prevent reverse engineering the libraries.", "id": "course-of-action--3b7c420e-04b7-4432-90f3-cdcec1a162cb", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-159-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--915e2bb6-c5cc-4d8c-b3f9-062b7c13ead4", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3b7c420e-04b7-4432-90f3-cdcec1a162cb", "spec_version": "2.1", "target_ref": "attack-pattern--d16af13f-5e0f-4a6b-bc1f-23f733d2229b", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "\n An attacker tries each of the words in a dictionary as passwords to gain access to the system via some user's account. If the password chosen by the user was a word within the dictionary, this attack will be successful (in the absence of other mitigations). This is a specific instance of the password brute forcing attack pattern.\n Dictionary Attacks differ from similar attacks such as Password Spraying (CAPEC-565) and Credential Stuffing (CAPEC-600), since they leverage unknown username/password combinations and don't care about inducing account lockouts.\n ", "external_references": [ { "external_id": "CAPEC-16", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/16.html" }, { "external_id": "CWE-521", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/521.html" }, { "external_id": "CWE-262", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/262.html" }, { "external_id": "CWE-263", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/263.html" }, { "external_id": "CWE-654", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/654.html" }, { "external_id": "CWE-307", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/307.html" }, { "external_id": "CWE-308", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/308.html" }, { "external_id": "CWE-309", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/309.html" } ], "id": "attack-pattern--a9dc4914-409a-4f71-80df-c5cc3923d112", "modified": "2020-12-17T00:00:00.000Z", "name": "Dictionary-based Password Attack", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_precede_refs": [ "attack-pattern--03a731ef-751b-43de-9159-9667d4be4d1a", "attack-pattern--22802ed6-ddc6-4da7-b6be-60b10d26198b", "attack-pattern--886a7175-e28a-4e6d-bd22-3b1497e31dc7", "attack-pattern--f2654def-b86d-4ddb-888f-de6b50a103a2", "attack-pattern--2618d0a4-06d0-4bde-8271-2df61ed8297a" ], "x_capec_child_of_refs": [ "attack-pattern--8d88a81c-bde9-4fb3-acbe-901c783d6427" ], "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authentication": [ "Gain Privileges" ], "Confidentiality": [ "Gain Privileges", "Read Data" ], "Integrity": [ "Modify Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "A system user selects the word \"treacherous\" as their passwords believing that it would be very difficult to guess. The password-based dictionary attack is used to crack this password and gain access to the account.", "\n The Cisco LEAP challenge/response authentication mechanism uses passwords in a way that is susceptible to dictionary attacks, which makes it easier for remote attackers to gain privileges via brute force password guessing attacks.\n Cisco LEAP is a mutual authentication algorithm that supports dynamic derivation of session keys. With Cisco LEAP, mutual authentication relies on a shared secret, the user's logon password (which is known by the client and the network), and is used to respond to challenges between the user and the Remote Authentication Dial-In User Service (RADIUS) server.\n Methods exist for someone to write a tool to launch an offline dictionary attack on password-based authentications that leverage Microsoft MS-CHAP, such as Cisco LEAP. The tool leverages large password lists to efficiently launch offline dictionary attacks against LEAP user accounts, collected through passive sniffing or active techniques.See also: CVE-2003-1096" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine application's/system's password policy: Determine the password policies of the target application/system.

  2. Techniques
    Determine minimum and maximum allowed password lengths.
    Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc., or whether they are allowed to contain words from the dictionary).
    Determine account lockout policy (a strict account lockout policy will prevent brute force attacks).
  3. Select dictionaries: Pick the dictionaries to be used in the attack (e.g. different languages, specific terminology, etc.)

  4. Techniques
    Select dictionary based on particular users' preferred languages.
    Select dictionary based on the application/system's supported languages.
  5. Determine username(s) to target: Determine username(s) whose passwords to crack.

  6. Techniques
    Obtain username(s) by sniffing network packets.
    Obtain username(s) by querying application/system (e.g. if upon a failed login attempt, the system indicates whether the entered username was valid or not)
    Obtain usernames from filesystem (e.g. list of directories in C:\\Documents and Settings\\ in Windows, and list in /etc/passwd in UNIX-like systems)

Exploit

  1. Use dictionary to crack passwords.: Use a password cracking tool that will leverage the dictionary to feed passwords to the system and see if they work.

  2. Techniques
    Try all words in the dictionary, as well as common misspellings of the words as passwords for the chosen username(s).
    Try common combinations of words in the dictionary, as well as common misspellings of the combinations as passwords for the chosen username(s).
", "x_capec_likelihood_of_attack": "Medium", "x_capec_prerequisites": [ "The system uses one factor password based authentication.", "The system does not have a sound password policy that is being enforced.", "The system does not implement an effective password throttling mechanism." ], "x_capec_resources_required": [ "A machine with sufficient resources for the job (e.g. CPU, RAM, HD). Applicable dictionaries are required. Also a password cracking tool or a custom script that leverages the dictionary database to launch the attack." ], "x_capec_skills_required": { "Low": "A variety of password cracking tools and dictionaries are available to launch this type of an attack." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Create a strong password policy and ensure that your system enforces this policy.", "id": "course-of-action--93ed0e66-1693-44b2-b416-bee8db1ad4c2", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-16-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--0aa3c5ce-dade-4c9d-b9cb-cfd13a4fc7b0", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--93ed0e66-1693-44b2-b416-bee8db1ad4c2", "spec_version": "2.1", "target_ref": "attack-pattern--a9dc4914-409a-4f71-80df-c5cc3923d112", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implement an intelligent password throttling mechanism. Care must be taken to assure that these mechanisms do not excessively enable account lockout attacks such as CAPEC-2.", "id": "course-of-action--36387909-c46a-4d0f-8954-bbc4c954c9a9", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-16-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6e58b5f0-7d1d-48bc-bbfd-a15472142005", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--36387909-c46a-4d0f-8954-bbc4c954c9a9", "spec_version": "2.1", "target_ref": "attack-pattern--a9dc4914-409a-4f71-80df-c5cc3923d112", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Leverage multi-factor authentication for all authentication services.", "id": "course-of-action--4e15baee-dc2c-4af0-bad4-f2a1fd8a7000", "modified": "2020-12-17T00:00:00.000Z", "name": "coa-16-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--21bb6f85-66f5-41e1-b24b-9ad75b3f1526", "modified": "2020-12-17T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--4e15baee-dc2c-4af0-bad4-f2a1fd8a7000", "spec_version": "2.1", "target_ref": "attack-pattern--a9dc4914-409a-4f71-80df-c5cc3923d112", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Some APIs support scripting instructions as arguments. Methods that take scripted instructions (or references to scripted instructions) can be very flexible and powerful. However, if an attacker can specify the script that serves as input to these methods they can gain access to a great deal of functionality. For example, HTML pages support \n A similar example uses session ID as an argument of the URL.\n http://www.example.com/index.php/sessionid=0123456789\n Once the victim clicks the links, the attacker may be able to bypass authentication or piggy-back off some other authenticated victim's session.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Analyze and Understand Session IDs: The attacker finds that the targeted application use session credentials to identify legitimate users.

  2. Techniques
    An attacker makes many anonymous connections and records the session IDs.
    An attacker makes authorized connections and records the session tokens or credentials.

Experiment

  1. Create Session IDs.: Attackers craft messages containing their forged credentials in GET, POST request, HTTP headers or cookies.

  2. Techniques
    The attacker manipulates the HTTP request message and adds their forged session IDs in to the requests or cookies.

Exploit

  1. Abuse the Victim's Session Credentials: The attacker fixates falsified session ID to the victim when victim access the system. Once the victim has achieved a higher level of privilege, possibly by logging into the application, the attacker can now take over the session using the forged session identifier.

  2. Techniques
    The attacker loads the predefined or predicted session ID into their browser and browses to protected data or functionality.
    The attacker loads the predefined or predicted session ID into their software and utilizes functionality with the rights of the victim.
", "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--012db73f-2f3c-49f3-bdf3-12ec3eee01ce", "attack-pattern--7ee89c1f-50a5-42e6-abdb-6d8ba0349810" ], "x_capec_prerequisites": [ "The targeted application must use session credentials to identify legitimate users. Session identifiers that remains unchanged when the privilege levels change. Predictable session identifiers." ], "x_capec_resources_required": [ "Attackers may require tools to craft messages containing their forged credentials, and ability to send HTTP request to a web application." ], "x_capec_skills_required": { "Medium": "Forge the session credential and reply the request." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Use session IDs that are difficult to guess or brute-force: One way for the attackers to obtain valid session IDs is by brute-forcing or guessing them. By choosing session identifiers that are sufficiently random, brute-forcing or guessing becomes very difficult.", "id": "course-of-action--aba24572-8817-4d88-92bf-765eaa6ae508", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-196-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--a7fe664e-53db-4afa-acf9-45a9386c846a", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--aba24572-8817-4d88-92bf-765eaa6ae508", "spec_version": "2.1", "target_ref": "attack-pattern--414d0884-4f46-4a51-b4ea-72125c7f5f9e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Regenerate and destroy session identifiers when there is a change in the level of privilege: This ensures that even though a potential victim may have followed a link with a fixated identifier, a new one is issued when the level of privilege changes.", "id": "course-of-action--9403f5e9-5529-4e19-8b52-23c80494dc87", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-196-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--7122b06c-8e94-4304-88f8-5f9d5c620b25", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--9403f5e9-5529-4e19-8b52-23c80494dc87", "spec_version": "2.1", "target_ref": "attack-pattern--414d0884-4f46-4a51-b4ea-72125c7f5f9e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary submits data to a target application which contains nested exponential data expansion to produce excessively large output. Many data format languages allow the definition of macro-like structures that can be used to simplify the creation of complex structures. However, this capability can be abused to create excessive demands on a processor's CPU and memory. A small number of nested expansions can result in an exponential growth in demands on memory.", "external_references": [ { "external_id": "CAPEC-197", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/197.html" }, { "external_id": "CWE-770", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/770.html" }, { "external_id": "CWE-776", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/776.html" }, { "description": "XML Entity Expansion", "external_id": "44", "source_name": "WASC", "url": "http://projects.webappsec.org/XML-Entity-Expansion" }, { "description": "Amit Klein, Multiple vendors XML parser (and SOAP/WebServices server) Denial of Service attack using DTD", "external_id": "REF-64", "source_name": "reference_from_CAPEC", "url": "http://www.securityfocus.com/archive/1/303509" }, { "description": "Pete Lindstrom, Attacking & Defending Web Services, 2002, SPiRE Security", "external_id": "REF-65", "source_name": "reference_from_CAPEC", "url": "http://www.webtorials.com/main/comnet/cn2003/web-service/24.pdf" }, { "description": "Elliotte Rusty Harold, Tip: Configure SAX parsers for secure processing, IBM developerWorks, 2005--05---27, IBM", "external_id": "REF-66", "source_name": "reference_from_CAPEC", "url": "http://www.ibm.com/developerworks/xml/library/x-tipcfsx.html" }, { "description": "Bryan Sullivan, XML Denial of Service Attacks and Defenses", "external_id": "REF-67", "source_name": "reference_from_CAPEC", "url": "http://msdn.microsoft.com/en-us/magazine/ee335713.aspx" }, { "description": "Bryan Sullivan, XML Denial of Service Attacks and Defenses", "external_id": "REF-67", "source_name": "reference_from_CAPEC", "url": "http://msdn.microsoft.com/en-us/magazine/ee335713.aspx" } ], "id": "attack-pattern--f36abc8a-043e-42c5-876d-a65fc0cddc1e", "modified": "2022-09-29T00:00:00.000Z", "name": "Exponential Data Expansion", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_alternate_terms": [ "Billion Laughs Attack", "XML Bomb", "XML Entity Expansion (XEE)" ], "x_capec_can_follow_refs": [ "attack-pattern--5cf3eacf-a0c6-4c59-9f97-4f677a90587a" ], "x_capec_child_of_refs": [ "attack-pattern--8abd01d1-b2a2-4b86-a640-7d3d3b61d27f" ], "x_capec_consequences": { "Availability": [ "Unreliable Execution (Denial of Service)", "Resource Consumption (Denial of Service)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n The most common example of this type of attack is the \"many laughs\" attack (sometimes called the 'billion laughs' attack). For example:\n \n ]>&lol9;\n This is well formed and valid XML according to the DTD. Each entity increases the number entities by a factor of 10. The line of XML containing lol9; expands out exponentially to a message with 10^9 entities. A small message of a few KBs in size can easily be expanded into a few GB of memory in the parser. By including 3 more entities similar to the lol9 entity in the above code to the DTD, the program could expand out over a TB as there will now be 10^12 entities. Depending on the robustness of the target machine, this can lead to resource depletion, application crash, or even the execution of arbitrary code through a buffer overflow.\n ", "\n This example is similar, but uses YAML. This was used to attack Kubernetes [REF-686]\n a: &a [\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\"]b: &b [*a,*a,*a,*a,*a,*a,*a,*a,*a]c: &c [*b,*b,*b,*b,*b,*b,*b,*b,*b]d: &d [*c,*c,*c,*c,*c,*c,*c,*c,*c]e: &e [*d,*d,*d,*d,*d,*d,*d,*d,*d]f: &f [*e,*e,*e,*e,*e,*e,*e,*e,*e]g: &g [*f,*f,*f,*f,*f,*f,*f,*f,*f]h: &h [*g,*g,*g,*g,*g,*g,*g,*g,*g]i: &i [*h,*h,*h,*h,*h,*h,*h,*h,*h]\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the target: An adversary determines the input data stream that is being processed by a data parser that supports using subsitituion on the victim's side.

  2. Techniques
    Use an automated tool to record all instances of URLs to process requests.
    Use a browser to manually explore the website and analyze how the application processes requests.

Experiment

  1. Craft malicious payload: The adversary crafts a malicious message containing nested exponential expansion that completely uses up available server resources. See the \"Example Instances\" section for details on how to craft this malicious payload.

Exploit

  1. Send the message: Send the malicious crafted message to the target URL.

", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "This type of attack requires that the target must receive input but either fail to provide an upper limit for entity expansion or provide a limit that is so large that it does not preclude significant resource consumption." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Low": "Ability to craft nested data expansion messages." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Use libraries and templates that minimize unfiltered input. Use methods that limit entity expansion and throw exceptions on attempted entity expansion.", "id": "course-of-action--7cdc228e-d1d1-40c4-b9c4-9e9f89b3df71", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-197-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--0492ba63-8134-4235-a371-e1cf83184a85", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--7cdc228e-d1d1-40c4-b9c4-9e9f89b3df71", "spec_version": "2.1", "target_ref": "attack-pattern--f36abc8a-043e-42c5-876d-a65fc0cddc1e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: For XML based data - disable altogether the use of inline DTD schemas when parsing XML objects. If a DTD must be used, normalize, filter and use an allowlist and parse with methods and routines that will detect entity expansion from untrusted sources.", "id": "course-of-action--a2a17594-fbe4-4682-92b8-c64f405f7e3c", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-197-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6b369dc5-7f0d-40cb-8412-64f171649546", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a2a17594-fbe4-4682-92b8-c64f405f7e3c", "spec_version": "2.1", "target_ref": "attack-pattern--f36abc8a-043e-42c5-876d-a65fc0cddc1e", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary distributes a link (or possibly some other query structure) with a request to a third party web server that is malformed and also contains a block of exploit code in order to have the exploit become live code in the resulting error page.", "external_references": [ { "external_id": "CAPEC-198", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/198.html" }, { "external_id": "CWE-81", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/81.html" } ], "id": "attack-pattern--0e2bf24b-2931-45aa-a0e9-22eccfb310b2", "modified": "2022-09-29T00:00:00.000Z", "name": "XSS Targeting Error Pages", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--61b17787-fe92-427c-9e6a-6311997d7b2a", "attack-pattern--800f8095-99b6-4bb9-8bc6-8b9727201a2f", "attack-pattern--b1eef783-daae-494c-a418-cd9ada7cbe8b" ], "x_capec_domains": [ "Software", "Software", "Software" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the application for user-controllable inputs as URL parameters: Using a browser or an automated tool, an adversary follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web application, looking for URLs which use parameters.

  2. Techniques
    Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make note of any links that include parameters in the URL.
    Use a proxy tool to record all links visited during a manual traversal of the web application.
    Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.

Experiment

  1. Cause application to return error page: The adversary uses the URLs gathered in the \"Explore\" phase as a target list and injects various common script payloads and special characters into the parameters to see if an error page occurs, and if the injected payload is executed by the error page.

  2. Techniques
    Use a list of XSS probe strings to inject script in parameters of known URLs. If possible, the probe strings contain a unique identifier.
    Use a proxy tool to record results of manual input of XSS probes in known URLs.
    Use a list of HTML special characters to inject into parameters of known URLs and check if they caused errors
  3. Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS through an error page, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.

  4. Techniques
    Change a URL parameter to include a malicious script tag.
    Send information gathered from the malicious script to a remote endpoint.

Exploit

  1. Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.

  2. Techniques
    Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion.
    Put the malicious URL on a public forum, where many victims might accidentally click the link.
", "x_capec_extended_description": "\n When the third party web server receives the crafted request and notes the error it then creates an error message that echoes the malformed message, including the exploit. Doing this converts the exploit portion of the message into to valid language elements that are executed by the viewing browser. When a victim executes the query provided by the adversary the infected error message is returned including the exploit code which then runs in the victim's browser. XSS can result in execution of code as well as data leakage (e.g. session cookies can be sent to the attacker). This type of attack is especially dangerous since the exploit appears to come from the third party web server, who the victim may trust and hence be more vulnerable to deception.\n ", "x_capec_prerequisites": [ "A third party web server which fails to adequately sanitize messages sent in error pages.", "The victim must be made to execute a query crafted by the adversary which results in the infected error report." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Use libraries and templates that minimize unfiltered input.", "id": "course-of-action--89b4089f-8b0c-4e66-9b1b-8d05f8cbaaf5", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-198-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6ead6205-dacb-49ab-9007-3a8d39a3ea50", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--89b4089f-8b0c-4e66-9b1b-8d05f8cbaaf5", "spec_version": "2.1", "target_ref": "attack-pattern--0e2bf24b-2931-45aa-a0e9-22eccfb310b2", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Normalize, filter and use an allowlist for any input that will be used in error messages.", "id": "course-of-action--c79cd2c1-58af-4951-8d6a-8767190e4ecd", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-198-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--d30e714c-2b9c-4a0d-95e1-7bf38e3f7c5e", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--c79cd2c1-58af-4951-8d6a-8767190e4ecd", "spec_version": "2.1", "target_ref": "attack-pattern--0e2bf24b-2931-45aa-a0e9-22eccfb310b2", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: The victim should configure the browser to minimize active content from untrusted sources.", "id": "course-of-action--7a8e75aa-0acc-4307-99ae-181fbe26a03d", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-198-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--201dd0ea-a13e-4039-a9c2-1b28e26c2560", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--7a8e75aa-0acc-4307-99ae-181fbe26a03d", "spec_version": "2.1", "target_ref": "attack-pattern--0e2bf24b-2931-45aa-a0e9-22eccfb310b2", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary uses alternate forms of keywords or commands that result in the same action as the primary form but which may not be caught by filters. For example, many keywords are processed in a case insensitive manner. If the site's web filtering algorithm does not convert all tags into a consistent case before the comparison with forbidden keywords it is possible to bypass filters (e.g., incomplete black lists) by using an alternate case structure. For example, the \"script\" tag using the alternate forms of \"Script\" or \"ScRiPt\" may bypass filters where \"script\" is the only form tested. Other variants using different syntax representations are also possible as well as using pollution meta-characters or entities that are eventually ignored by the rendering engine. The attack can result in the execution of otherwise prohibited functionality.", "external_references": [ { "external_id": "CAPEC-199", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/199.html" }, { "external_id": "CWE-87", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/87.html" }, { "description": "OWASP Cheatsheets, The Open Web Application Security Project (OWASP)", "external_id": "REF-69", "source_name": "reference_from_CAPEC", "url": "https://www.owasp.org/www-community/xss-filter-evasion-cheatsheet" }, { "description": "OWASP Testing Guide (v2), The Open Web Application Security Project (OWASP)", "external_id": "REF-70", "source_name": "reference_from_CAPEC", "url": "http://www.owasp.org/index.php/Testing_for_Cross_site_scripting" }, { "description": "Non-alphanumeric XSS cheat sheet", "external_id": "REF-71", "source_name": "reference_from_CAPEC", "url": "http://sla.ckers.org/forum/read.php?24,28687" }, { "description": "WASC Threat Classification 2.0, 2010, The Web Application Security Consortium (WASC)", "external_id": "REF-72", "source_name": "reference_from_CAPEC", "url": "http://projects.webappsec.org/Cross-Site+Scripting" } ], "id": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "modified": "2022-09-29T00:00:00.000Z", "name": "XSS Using Alternate Syntax", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--61b17787-fe92-427c-9e6a-6311997d7b2a", "attack-pattern--800f8095-99b6-4bb9-8bc6-8b9727201a2f", "attack-pattern--b1eef783-daae-494c-a418-cd9ada7cbe8b" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Accountability": [ "Gain Privileges" ], "Authentication": [ "Gain Privileges" ], "Authorization": [ "Execute Unauthorized Commands (Run Arbitrary Code)", "Gain Privileges", "Bypass Protection Mechanism" ], "Confidentiality": [ "Read Data" ], "Integrity": [ "Modify Data" ], "Non-Repudiation": [ "Gain Privileges" ] }, "x_capec_domains": [ "Software", "Software", "Software" ], "x_capec_example_instances": [ "\n In this example, the adversary tries to get executed by the victim's browser. The target application employs regular expressions to make sure no script is being passed through the application to the web page; such a regular expression could be ((?i)script), and the application would replace all matches by this regex by the empty string. An adversary will then create a special payload to bypass this filter:\n alert(1)\n when the applications gets this input string, it will replace all \"script\" (case insensitive) by the empty string and the resulting input will be the desired vector by the adversary:\n \n In this example, we assume that the application needs to write a particular string in a client-side JavaScript context (e.g., ). For the adversary to execute the same payload as in the previous example, they would need to send alert(1) if there was no filtering. The application makes use of the following regular expression as filter\n ((\\w+)\\s*\\(.*\\)|alert|eval|function|document)\n and replaces all matches by the empty string. For example each occurrence of alert(), eval(), foo() or even the string \"alert\" would be stripped. An adversary will then create a special payload to bypass this filter:\n this['al' + 'ert'](1)\n when the applications gets this input string, it won't replace anything and this piece of JavaScript has exactly the same runtime meaning as alert(1). The adversary could also have used non-alphanumeric XSS vectors to bypass the filter; for example,\n ($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_)\n would be executed by the JavaScript engine like alert(1) is.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the application for user-controllable inputs: Using a browser or an automated tool, an adversary follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web application.

  2. Techniques
    Use a spidering tool to follow and record all links. Make special note of any links that include parameters in the URL.
    Use a proxy tool to record all links visited during a manual traversal of the web application. Make special note of any links that include parameters in the URL. Manual traversal of this type is frequently necessary to identify forms that are GET method forms rather than POST forms.
    Use a browser to manually explore the website and analyze how it is constructed. Many browser's plugins are available to facilitate the analysis or automate the URL discovery.

Experiment

  1. Probe identified potential entry points for XSS vulnerability: Possibly using an automated tool, an adversary requests variations on the inputs they surveyed before using alternate syntax. These inputs are designed to bypass incomplete filtering (e.g., incomplete HTML encoding etc.) and try many variations of characters injection that would enable the XSS payload. They record all the responses from the server that include unmodified versions of their script.

  2. Techniques
    Use a list of XSS probe strings to inject in parameters of known URLs. If possible, the probe strings contain a unique identifier. Attempt numerous variations based on form, format, syntax & encoding.
    Use a proxy tool to record results of manual input of XSS probes in known URLs.
  3. Craft malicious XSS URL: Once the adversary has determined which parameters are vulnerable to XSS, they will craft a malicious URL containing the XSS exploit. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from the victim.

  4. Techniques
    Change a URL parameter to include a malicious script tag created using alternate syntax to bypass filters.
    Send information gathered from the malicious script to a remote endpoint.

Exploit

  1. Get victim to click URL: In order for the attack to be successful, the victim needs to access the malicious URL.

  2. Techniques
    Send a phishing email to the victim containing the malicious URL. This can be hidden in a hyperlink as to not show the full URL, which might draw suspicion.
    Put the malicious URL on a public forum, where many victims might accidentally click the link.
", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "Target client software must allow scripting such as JavaScript." ], "x_capec_resources_required": [ "Ability to send HTTP request to a web application." ], "x_capec_skills_required": { "High": "To bypass non trivial filters in the application", "Low": "To inject the malicious payload in a web page" }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Use browser technologies that do not allow client side scripting.", "id": "course-of-action--094a4c09-e49c-422b-b8ec-b51c19dba18c", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-199-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--7f9249a2-6d3a-425e-9583-820baa614887", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--094a4c09-e49c-422b-b8ec-b51c19dba18c", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Utilize strict type, character, and encoding enforcement", "id": "course-of-action--040cd51a-446a-4612-a9d0-4a90119d5191", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-199-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--5b5fa953-0ec5-48c2-b9a3-ea2461650cf6", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--040cd51a-446a-4612-a9d0-4a90119d5191", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Ensure all content that is delivered to client is sanitized against an acceptable content specification.", "id": "course-of-action--e9836d98-9116-4902-ba62-2c4fcc7e03c3", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-199-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8bcece01-19c2-465b-9658-461bae9bfd35", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e9836d98-9116-4902-ba62-2c4fcc7e03c3", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Ensure all content coming from the client is using the same encoding; if not, the server-side application must canonicalize the data before applying any filtering.", "id": "course-of-action--63ed5cb5-5feb-4677-8623-3c5552f796ee", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-199-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--8be86371-e989-4042-af5b-bfd78a42085f", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--63ed5cb5-5feb-4677-8623-3c5552f796ee", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--b307ad0c-ae60-4f03-a5fb-26f4499dc18d", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--26850710-b983-423b-962a-5fd4b550fa0e", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Perform output validation for all remote content.", "id": "course-of-action--4f20a4a7-cb6a-477b-a12a-13c5e9d03353", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-199-5", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--ba695a24-c9fb-4c8a-9012-dc3b1068ec38", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--4f20a4a7-cb6a-477b-a12a-13c5e9d03353", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Disable scripting languages such as JavaScript in browser", "id": "course-of-action--f31f11cb-6403-4667-bf43-d77242ac7ae2", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-199-6", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--1488d37a-9c10-49ea-bce3-d8270b3b9d2f", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--f31f11cb-6403-4667-bf43-d77242ac7ae2", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Patching software. There are many attack vectors for XSS on the client side and the server side. Many vulnerabilities are fixed in service packs for browser, web servers, and plug in technologies, staying current on patch release that deal with XSS countermeasures mitigates this.", "id": "course-of-action--fd1a110f-6520-479b-9f42-9c88acdbf90e", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-199-7", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--b3584936-9e95-48a5-bcca-77b2c2f44e5a", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--fd1a110f-6520-479b-9f42-9c88acdbf90e", "spec_version": "2.1", "target_ref": "attack-pattern--b703f007-6e24-4365-b5f7-c5d249253b33", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker leverages the security functionality of the system aimed at thwarting potential attacks to launch a denial of service attack against a legitimate system user. Many systems, for instance, implement a password throttling mechanism that locks an account after a certain number of incorrect log in attempts. An attacker can leverage this throttling mechanism to lock a legitimate user out of their own account. The weakness that is being leveraged by an attacker is the very security feature that has been put in place to counteract attacks.", "external_references": [ { "external_id": "CAPEC-2", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/2.html" }, { "external_id": "CWE-645", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/645.html" }, { "description": "Account Access Removal", "external_id": "T1531", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1531" } ], "id": "attack-pattern--4ee9fc30-e736-4f4f-b55b-8a3008214042", "modified": "2021-06-24T00:00:00.000Z", "name": "Inducing Account Lockout", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--c727c058-2c9d-4021-a1ec-81dd030dea59" ], "x_capec_consequences": { "Availability": [ "Resource Consumption (Denial of Service)" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "A famous example of this type an attack is the eBay attack. eBay always displays the user id of the highest bidder. In the final minutes of the auction, one of the bidders could try to log in as the highest bidder three times. After three incorrect log in attempts, eBay password throttling would kick in and lock out the highest bidder's account for some time. An attacker could then make their own bid and their victim would not have a chance to place the counter bid because they would be locked out. Thus an attacker could win the auction." ], "x_capec_execution_flow": "

Execution Flow

Experiment

  1. Investigate account lockout behavior of system: Investigate the security features present in the system that may trigger an account lockout

  2. Techniques
    Analyze system documentation to find list of events that could potentially cause account lockout
    Obtain user account in system and attempt to lock it out by sending malformed or incorrect data repeatedly
    Determine another user's login ID, and attempt to brute force the password (or other credentials) for it a predetermined number of times, or until the system provides an indication that the account is locked out.
  3. Obtain list of user accounts to lock out: Generate a list of valid user accounts to lock out

  4. Techniques
    Obtain list of authorized users using another attack pattern, such as SQL Injection.
    Attempt to create accounts if possible; system should indicate if a user ID is already taken.
    Attempt to brute force user IDs if system reveals whether a given user ID is valid or not upon failed login attempts.

Exploit

  1. Lock Out Accounts: Perform lockout procedure for all accounts that the attacker wants to lock out.

  2. Techniques
    For each user ID to be locked out, perform the lockout procedure discovered in the first step.
", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "The system has a lockout mechanism.", "An attacker must be able to reproduce behavior that would result in an account being locked." ], "x_capec_resources_required": [ "Computer with access to the login portion of the target system" ], "x_capec_skills_required": { "Low": "No programming skills or computer knowledge is needed. An attacker can easily use this attack pattern following the Execution Flow above." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implement intelligent password throttling mechanisms such as those which take IP address into account, in addition to the login name.", "id": "course-of-action--5d9b587f-481e-494f-a547-92de65b44c0a", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-2-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--42e9e6ff-2250-40b7-b5c7-26510e85245f", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--5d9b587f-481e-494f-a547-92de65b44c0a", "spec_version": "2.1", "target_ref": "attack-pattern--4ee9fc30-e736-4f4f-b55b-8a3008214042", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "When implementing security features, consider how they can be misused and made to turn on themselves.", "id": "course-of-action--2b357357-88e4-40f9-9345-ada3db593ff5", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-2-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--01ecb9a3-1f92-4fc8-879d-f7f3fb7ed660", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--2b357357-88e4-40f9-9345-ada3db593ff5", "spec_version": "2.1", "target_ref": "attack-pattern--4ee9fc30-e736-4f4f-b55b-8a3008214042", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker, armed with the cipher text and the encryption algorithm used, performs an exhaustive (brute force) search on the key space to determine the key that decrypts the cipher text to obtain the plaintext.", "external_references": [ { "external_id": "CAPEC-20", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-326", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/326.html" }, { "external_id": "CWE-327", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/327.html" }, { "external_id": "CWE-693", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/693.html" }, { "external_id": "CWE-1204", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1204.html" } ], "id": "attack-pattern--86a5e931-7f53-46fe-b6f0-c88498f6557f", "modified": "2021-06-24T00:00:00.000Z", "name": "Encryption Brute Forcing", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_can_follow_refs": [ "attack-pattern--f1336271-5f27-40de-a61b-aba6572d120f" ], "x_capec_can_precede_refs": [ "attack-pattern--8c806dfa-b8ca-45f9-9f97-09e4b5c1157b" ], "x_capec_child_of_refs": [ "attack-pattern--7b423196-9de6-400f-91de-a1f26b3f19f1" ], "x_capec_consequences": { "Confidentiality": [ "Read Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "In 1997 the original DES challenge used distributed net computing to brute force the encryption key and decrypt the ciphertext to obtain the original plaintext. Each machine was given its own section of the key space to cover. The ciphertext was decrypted in 96 days." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Determine the ciphertext and the encryption algorithm.

Experiment

  1. Perform an exhaustive brute force search of the key space, producing candidate plaintexts and observing if they make sense.

", "x_capec_likelihood_of_attack": "Low", "x_capec_prerequisites": [ "Ciphertext is known.", "Encryption algorithm and key size are known." ], "x_capec_resources_required": [ "\n A powerful enough computer for the job with sufficient CPU, RAM and HD. Exact requirements will depend on the size of the brute force job and the time requirement for completion. Some brute forcing jobs may require grid or distributed computing (e.g. DES Challenge).\n On average, for a binary key of size N, 2^(N/2) trials will be needed to find the key that would decrypt the ciphertext to obtain the original plaintext.\n Obviously as N gets large the brute force approach becomes infeasible.\n " ], "x_capec_skills_required": { "Low": "Brute forcing encryption does not require much skill." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Low", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Use commonly accepted algorithms and recommended key sizes. The key size used will depend on how important it is to keep the data confidential and for how long.", "id": "course-of-action--14ea1dd8-a232-4071-897a-a930751702bb", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-20-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--439ff02b-9273-4b92-9c82-0a6912ef0dc7", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--14ea1dd8-a232-4071-897a-a930751702bb", "spec_version": "2.1", "target_ref": "attack-pattern--86a5e931-7f53-46fe-b6f0-c88498f6557f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "In theory a brute force attack performing an exhaustive key space search will always succeed, so the goal is to have computational security. Moore's law needs to be taken into account that suggests that computing resources double every eighteen months.", "id": "course-of-action--8ce2fd56-5e92-4999-b81d-697c7ddb5202", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-20-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--24444738-98cb-4371-b7e9-aba1bd3d11ad", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--8ce2fd56-5e92-4999-b81d-697c7ddb5202", "spec_version": "2.1", "target_ref": "attack-pattern--86a5e931-7f53-46fe-b6f0-c88498f6557f", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker removes or disables filtering mechanisms on the target application. Input filters prevent invalid data from being sent to an application (for example, overly large inputs that might cause a buffer overflow or other malformed inputs that may not be correctly handled by an application). Input filters might also be designed to constrained executable content.", "external_references": [ { "external_id": "CAPEC-200", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/200.html" } ], "id": "attack-pattern--5c201b0f-aa6f-4220-a544-1e1e7ca8ecf7", "modified": "2022-02-22T00:00:00.000Z", "name": "Removal of filters: Input filters, output filters, data masking", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--3c404955-b160-423f-b148-d4fa4727e3a9" ], "x_capec_domains": [ "Software" ], "x_capec_extended_description": "\n For example, if an application accepts scripting languages as input, an input filter could constrain the commands received and block those that the application's administrator deems to be overly powerful. An output filter screens responses from an application or person in order to prevent disclosure of sensitive information.\n For example, an application's output filter might block output that is sourced to sensitive folders or which contains certain keywords. A data mask is similar to an output filter, but usually applies to structured data, such as found in databases. Data masks elide or replace portions of the information returned from a query in order to protect against the disclosure of sensitive information. If an input filter is removed the attacker will be able to send content to the target and have the target utilize it without it being sanitized. If the content sent by the attacker is executable, the attacker may be able to execute arbitrary commands on the target. If an output filter or data masking mechanism is disabled, the target may send out sensitive information that would otherwise be elided by the filters. If the data mask is disabled, sensitive information stored in a database would be returned unaltered. This could result in the disclosure of sensitive information, such as social security numbers of payment records.\n This attack is usually executed as part of a larger attack series. The attacker would disable filters and would then mount additional attacks to either insert commands or data or query the target application in ways that would otherwise be prevented by the filters.\n ", "x_capec_prerequisites": [ "The target application must utilize some sort of filtering mechanism (input, output, or data masking)." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary creates a serialized data file (e.g. XML, YAML, etc...) that contains an external data reference. Because serialized data parsers may not validate documents with external references, there may be no checks on the nature of the reference in the external data. This can allow an adversary to open arbitrary files or connections, which may further lead to the adversary gaining access to information on the system that they would normally be unable to obtain.", "external_references": [ { "external_id": "CAPEC-201", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/201.html" }, { "external_id": "CWE-829", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/829.html" }, { "description": "XXE (Xml eXternal Entity) Attack, Beyond Security", "external_id": "REF-73", "source_name": "reference_from_CAPEC", "url": "http://www.securiteam.com/securitynews/6D0100A5PU.html" }, { "description": "CESA-2007-002 - rev 2: Sun JDK6 breaks XXE attack protection", "external_id": "REF-74", "source_name": "reference_from_CAPEC", "url": "http://scary.beasts.org/security/CESA-2007-002.html" } ], "id": "attack-pattern--d9717514-c621-49cd-b8e1-fd7cc1daa8d1", "modified": "2022-09-29T00:00:00.000Z", "name": "Serialized Data External Linking", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--fd669b7d-0e79-473c-9808-a860dfb0c871", "attack-pattern--b6f5248a-346f-484f-8091-8ab84288aa81" ], "x_capec_consequences": { "Confidentiality": [ "Read Data" ] }, "x_capec_domains": [ "Software", "Communications", "Software" ], "x_capec_example_instances": [ "\n The following DTD would attempt to open the /dev/tty device:\n ]>\n A malicious actor could use this crafted DTD to reveal sensitive information.\n ", "\n The following XML snippet would attempt to open the /etc/passwd file:\n \n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the target: Using a browser or an automated tool, an adversary records all instances of web services that process requests with serialized data.

  2. Techniques
    Use an automated tool to record all instances of URLs that process requests with serialized data.
    Use a browser to manually explore the website and analyze how the application processes serialized data requests.

Exploit

  1. Craft malicious payload: The adversary crafts malicious data message that contains references to sensitive files.

  2. Launch an External Linking attack: Send the malicious crafted message containing the reference to a sensitive file to the target URL.

", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "The target must follow external data references without validating the validity of the reference target." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "Low": "To send serialized data messages with maliciously crafted schema." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Configure the serialized data processor to only retrieve external entities from trusted sources.", "id": "course-of-action--5e577722-adf8-4c68-bfc3-18c7b2e3cd69", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-201-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6d8b8b0b-8f2d-4cfd-a9fa-dd14e071f340", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--5e577722-adf8-4c68-bfc3-18c7b2e3cd69", "spec_version": "2.1", "target_ref": "attack-pattern--d9717514-c621-49cd-b8e1-fd7cc1daa8d1", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary creates a client application to interface with a target service where the client violates assumptions the service makes about clients. Services that have designated client applications (as opposed to services that use general client applications, such as IMAP or POP mail servers which can interact with any IMAP or POP client) may assume that the client will follow specific procedures.", "external_references": [ { "external_id": "CAPEC-202", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/202.html" }, { "external_id": "CWE-602", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/602.html" } ], "id": "attack-pattern--158c1c58-9c44-4822-a8a4-6cb791c5b3cb", "modified": "2022-02-22T00:00:00.000Z", "name": "Create Malicious Client", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--1fa1539d-4a13-4453-bf43-ad0987b2fbf5" ], "x_capec_domains": [ "Software" ], "x_capec_extended_description": "\n For example, servers may assume that clients will accurately compute values (such as prices), will send correctly structured messages, and will attempt to ensure efficient interactions with the server. By reverse-engineering a client and creating their own version, an adversary can take advantage of these assumptions to abuse service functionality.\n For example, a purchasing service might send a unit price to its client and expect the client to correctly compute the total cost of a purchase. If the adversary uses a malicious client, however, the adversary could ignore the server input and declare any total price. Likewise, an adversary could configure the client to retain network or other server resources for longer than legitimately necessary in order to degrade server performance. Even services with general clients can be susceptible to this attack if they assume certain client behaviors. However, such services generally can make fewer assumptions about the behavior of their clients in the first place and, as such, are less likely to make assumptions that an adversary can exploit.\n ", "x_capec_prerequisites": [ "The targeted service must make assumptions about the behavior of the client application that interacts with it, which can be abused by an adversary." ], "x_capec_resources_required": [ "The adversary must be able to reverse engineer a client of the targeted service. However, the adversary does not need to reverse engineer all client functionality - they only need to recreate enough of the functionality to access the desired server functionality." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary exploits a weakness in authorization in order to modify content within a registry (e.g., Windows Registry, Mac plist, application registry). Editing registry information can permit the adversary to hide configuration information or remove indicators of compromise to cover up activity. Many applications utilize registries to store configuration and service information. As such, modification of registry information can affect individual services (affecting billing, authorization, or even allowing for identity spoofing) or the overall configuration of a targeted application. For example, both Java RMI and SOAP use registries to track available services. Changing registry values is sometimes a preliminary step towards completing another attack pattern, but given the long term usage of many registry values, manipulation of registry information could be its own end.", "external_references": [ { "external_id": "CAPEC-203", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/203.html" }, { "external_id": "CWE-15", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/15.html" }, { "description": "Modify Registry", "external_id": "T1112", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1112" }, { "description": "Plist Modification", "external_id": "T1647", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1647" } ], "id": "attack-pattern--e283aef8-250b-4ac9-bf8b-34a6a70ed2f4", "modified": "2022-09-29T00:00:00.000Z", "name": "Manipulate Registry Information", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--f9f65fdd-5857-4a57-a725-066465397601" ], "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "Manipulating registration information can be undertaken in advance of a path traversal attack (inserting relative path modifiers) or buffer overflow attack (enlarging a registry value beyond an application's ability to store it)." ], "x_capec_parent_of_refs": [ "attack-pattern--c8c9dfbe-7a40-4041-84ff-89942878a2f4", "attack-pattern--93bedd5b-70cc-48a0-a7c9-09b3800bd6bc", "attack-pattern--943fa8f4-b777-4f3c-984b-9f620e50c70b" ], "x_capec_prerequisites": [ "The targeted application must rely on values stored in a registry.", "The adversary must have a means of elevating permissions in order to access and modify registry content through either administrator privileges (e.g., credentialed access), or a remote access tool capable of editing a registry through an API." ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_skills_required": { "High": "The adversary requires privileged credentials or the development/acquiring of a tailored remote access tool." }, "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure proper permissions are set for Registry hives to prevent users from modifying keys.", "id": "course-of-action--ffb43c3c-114d-4da2-b797-b8e458ebd6fa", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-203-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--cc7d659b-2cb2-439c-aea4-42aea4f82adc", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--ffb43c3c-114d-4da2-b797-b8e458ebd6fa", "spec_version": "2.1", "target_ref": "attack-pattern--e283aef8-250b-4ac9-bf8b-34a6a70ed2f4", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Employ a robust and layered defensive posture in order to prevent unauthorized users on your system.", "id": "course-of-action--9c745fa6-97fd-4aa7-830c-2522e1df5ea6", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-203-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--999b1481-d5c3-444d-8eed-b7f921aa8bdf", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--9c745fa6-97fd-4aa7-830c-2522e1df5ea6", "spec_version": "2.1", "target_ref": "attack-pattern--e283aef8-250b-4ac9-bf8b-34a6a70ed2f4", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Employ robust identification and audit/blocking using an allowlist of applications on your system. Unnecessary applications, utilities, and configurations will have a presence in the system registry that can be leveraged by an adversary through this attack pattern.", "id": "course-of-action--2966a770-a439-475c-8cc1-418b64736efe", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-203-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--90f1e2e6-849c-4469-b78d-75ed3dfe70e3", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--2966a770-a439-475c-8cc1-418b64736efe", "spec_version": "2.1", "target_ref": "attack-pattern--e283aef8-250b-4ac9-bf8b-34a6a70ed2f4", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary examines a target application's cache, or a browser cache, for sensitive information. Many applications that communicate with remote entities or which perform intensive calculations utilize caches to improve efficiency. However, if the application computes or receives sensitive information and the cache is not appropriately protected, an attacker can browse the cache and retrieve this information. This can result in the disclosure of sensitive information.", "external_references": [ { "external_id": "CAPEC-204", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/204.html" }, { "external_id": "CWE-524", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/524.html" }, { "external_id": "CWE-311", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/311.html" }, { "external_id": "CWE-1239", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1239.html" }, { "external_id": "CWE-1258", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1258.html" }, { "description": "Data from Local System", "external_id": "T1005", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1005" } ], "id": "attack-pattern--c2a87533-3c81-40b3-b529-9560c644f70d", "modified": "2022-09-29T00:00:00.000Z", "name": "Lifting Sensitive Data Embedded in Cache", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_can_precede_refs": [ "attack-pattern--886a7175-e28a-4e6d-bd22-3b1497e31dc7" ], "x_capec_child_of_refs": [ "attack-pattern--d17eb5a5-1361-4e13-a969-e4d587d13b3d" ], "x_capec_domains": [ "Software", "Physical Security", "Hardware" ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Identify Application Cache: An adversary first identifies an application that utilizes a cache. This could either be a web application storing data in a browser cache, or an application running on a separate machine. The adversary examines the cache to determine file permissions and possible encryption.

  2. Techniques
    Use probing tools to look for application cache files on a machine.
    Use a web application and determine if any sensitive information is stored in browser cache.

Experiment

  1. Attempt to Access Cache: Once the cache has been discovered, the adversary attempts to access the cached data. This often requires previous access to a machine hosting the target application.

  2. Techniques
    Use priviledge escalation to access cache files that might have strict privileges.
    If the application cache is encrypted with weak encryption, attempt to understand the encryption technique and break the encryption.

Exploit

  1. Lift Sensitive Data from Cache: After gaining access to cached data, an adversary looks for potentially sensitive information and stores it for malicious use. This sensitive data could possibly be used in follow-up attacks related to authentication or authorization.

  2. Techniques
    Using a public computer, or gaining access to a victim's computer, examine browser cache to look for sensitive data left over from previous sessions.
", "x_capec_prerequisites": [ "The target application must store sensitive information in a cache.", "The cache must be inadequately protected against attacker access." ], "x_capec_resources_required": [ "The attacker must be able to reach the target application's cache. This may require prior access to the machine on which the target application runs. If the cache is encrypted, the attacker would need sufficient computational resources to crack the encryption. With strong encryption schemes, doing this could be intractable, but weaker encryption schemes could allow an attacker with sufficient resources to read the file." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This attack pattern has been deprecated as it is a duplicate of CAPEC-37 : Retrieve Embedded Sensitive Data. Please refer to this other pattern going forward.", "external_references": [ { "external_id": "CAPEC-205", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/205.html" } ], "id": "attack-pattern--1d84e8ef-4dc7-45bb-b079-09a0a6233bf9", "modified": "2017-05-01T00:00:00.000Z", "name": "DEPRECATED: Lifting credential(s)/key material embedded in client distributions (thick or thin)", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_status": "Deprecated", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "The adversary extracts credentials used for code signing from a production environment and then uses these credentials to sign malicious content with the developer's key. Many developers use signing keys to sign code or hashes of code. When users or applications verify the signatures are accurate they are led to believe that the code came from the owner of the signing key and that the code has not been modified since the signature was applied. If the adversary has extracted the signing credentials then they can use those credentials to sign their own code bundles. Users or tools that verify the signatures attached to the code will likely assume the code came from the legitimate developer and install or run the code, effectively allowing the adversary to execute arbitrary code on the victim's computer. This differs from CAPEC-673, because the adversary is performing the code signing.", "external_references": [ { "external_id": "CAPEC-206", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/206.html" }, { "external_id": "CWE-732", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/732.html" }, { "description": "Subvert Trust Controls:Code Signing", "external_id": "T1553.002", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1553/002" }, { "description": "Nicolas Falliere, Liam O Murchu, Eric Chien, W32.Stuxnet Dossier, 2010--11, Symantec", "external_id": "REF-699", "source_name": "reference_from_CAPEC", "url": "https://www.wired.com/images_blogs/threatlevel/2010/11/w32_stuxnet_dossier.pdf" }, { "description": "Cristin Goodwin, Joram Borenstein, Guarding against supply chain attacks—Part 3: How software becomes compromised, 2020--03---11, Microsoft", "external_id": "REF-700", "source_name": "reference_from_CAPEC", "url": "https://www.microsoft.com/security/blog/2020/03/11/guarding-against-supply-chain-attacks-part-3-how-software-becomes-compromised/" }, { "description": "Operation Wilted Tulip: Exposing a cyber espionage apparatus, 2017--07, ClearSky cyber security and Trend Micro", "external_id": "REF-714", "source_name": "reference_from_CAPEC", "url": "https://www.clearskysec.com/wp-content/uploads/2017/07/Operation_Wilted_Tulip.pdf" } ], "id": "attack-pattern--3c71639a-ebbd-43a4-8d0d-8a0e4cf9ade3", "modified": "2022-02-22T00:00:00.000Z", "name": "Signing Malicious Code", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--efb74200-657d-438c-aaff-bbd9644dd72d" ], "x_capec_domains": [ "Supply Chain", "Software" ], "x_capec_example_instances": [ "\n In the famous Stuxnet malware incident, two digital certificates were compromised in order to sign malicious device drivers with legitimate credentials. The signing resulted in the malware appearing as trusted by the system it was running on, which facilitated the installation of the malware in kernel mode. This further resulted in Stuxnet remaining undetected for a significant amount of time. [REF-699]\n ", "\n The cyber espionage group CyberKittens leveraged a stolen certificate from AI Squared that allowed them to leverage a signed executable within Operation Wilted Tulip. This ultimately allowed the executable to run as trusted on the system, allowing a Crowd Strike stager to be loaded within the system's memory. [REF-714]\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. The adversary first attempts to obtain a digital certificate in order to sign their malware or tools. This certificate could be stolen, created by the adversary, or acquired normally through a certificate authority.

  2. Based on the type of certificate obtained, the adversary will create a goal for their attack. This is either a broad or targeted attack. If an adversary was able to steal a certificate from a targeted organization, they could target this organization by pretending to have legitimate code signed by them. In other cases, the adversary would simply sign their malware and pose as legitimate software such that any user might trust it. This is the more broad approach

Experiment

  1. The adversary creates their malware and signs it with the obtained digital certificate. The adversary then checks if the code that they signed is valid either through downloading from the targeted source or testing locally.

Exploit

  1. Once the malware has been signed, it is then deployed to the desired location. They wait for a trusting user to run their malware, thinking that it is legitimate software. This malware could do a variety of things based on the motivation of the adversary.

", "x_capec_prerequisites": [ "The targeted developer must use a signing key to sign code bundles. (Note that not doing this is not a defense - it only means that the adversary does not need to steal the signing key before forging code bundles in the developer's name.)" ], "x_capec_resources_required": [ "None: No specialized resources are required to execute this type of attack." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Very High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Ensure digital certificates are protected and inaccessible by unauthorized uses.", "id": "course-of-action--ba7d1dc7-1157-4e70-bd60-0ffc00081dbb", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-206-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--9f7392ae-c45b-49fa-9355-c5319538ccd6", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--ba7d1dc7-1157-4e70-bd60-0ffc00081dbb", "spec_version": "2.1", "target_ref": "attack-pattern--3c71639a-ebbd-43a4-8d0d-8a0e4cf9ade3", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "If a digital certificate has been compromised it should be revoked and regenerated.", "id": "course-of-action--55870da4-61f0-486d-8c7e-a97282372d45", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-206-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--5c4654c1-b126-432b-9cd3-6dcbe787801b", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--55870da4-61f0-486d-8c7e-a97282372d45", "spec_version": "2.1", "target_ref": "attack-pattern--3c71639a-ebbd-43a4-8d0d-8a0e4cf9ade3", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Even if a piece of software has a valid and trusted digital signature, it should be assessed for any weaknesses and vulnerabilities.", "id": "course-of-action--9d35e87c-32b7-43a8-b58b-befcae839597", "modified": "2022-02-22T00:00:00.000Z", "name": "coa-206-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--44707875-683c-4f12-b340-14848083ceec", "modified": "2022-02-22T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--9d35e87c-32b7-43a8-b58b-befcae839597", "spec_version": "2.1", "target_ref": "attack-pattern--3c71639a-ebbd-43a4-8d0d-8a0e4cf9ade3", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary removes or disables functionality on the client that the server assumes to be present and trustworthy.", "external_references": [ { "external_id": "CAPEC-207", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/207.html" }, { "external_id": "CWE-602", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/602.html" }, { "description": "Wikipedia, The Wikimedia Foundation, Inc", "external_id": "REF-75", "source_name": "reference_from_CAPEC", "url": "http://en.wikipedia.org/wiki/Greasemonkey" }, { "description": "Firebug", "external_id": "REF-76", "source_name": "reference_from_CAPEC", "url": "http://getfirebug.com/" }, { "description": "Mozilla Firefox Add-ons", "external_id": "REF-77", "source_name": "reference_from_CAPEC", "url": "https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/" } ], "id": "attack-pattern--3c404955-b160-423f-b148-d4fa4727e3a9", "modified": "2023-01-24T00:00:00.000Z", "name": "Removing Important Client Functionality", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_child_of_refs": [ "attack-pattern--1fa1539d-4a13-4453-bf43-ad0987b2fbf5" ], "x_capec_consequences": { "Access_Control": [ "Bypass Protection Mechanism" ], "Accountability": [ "Gain Privileges" ], "Authentication": [ "Gain Privileges" ], "Authorization": [ "Gain Privileges", "Bypass Protection Mechanism" ], "Confidentiality": [ "Other (Information Leakage)", "Read Data" ], "Integrity": [ "Modify Data" ], "Non-Repudiation": [ "Gain Privileges" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "The adversary reverse engineers a Java binary (by decompiling it) and identifies where license management code exists. Noticing that the license manager returns TRUE or FALSE as to whether or not the user is licensed, the adversary simply overwrites both branch targets to return TRUE, recompiles, and finally redeploys the binary.", "The adversary uses click-through exploration of a Servlet-based website to map out its functionality, taking note of its URL-naming conventions and Servlet mappings. Using this knowledge and guessing the Servlet name of functionality they're not authorized to use, the adversary directly navigates to the privileged functionality around the authorizing single-front controller (implementing programmatic authorization checks)." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Probing: The adversary probes, through brute-forcing, reverse-engineering or other similar means, the functionality on the client that server assumes to be present and trustworthy.

  2. Techniques
    The adversary probes by exploring an application's functionality and its underlying mapping to server-side components.
    The adversary reverse engineers client-side code to identify the functionality that the server relies on for the proper or secure operation.

Experiment

  1. Determine which functionality to disable or remove: The adversary tries to determine which functionality to disable or remove through reverse-engineering from the list of functionality identified in the Explore phase.

  2. Techniques
    The adversary reverse engineers the client-side code to determine which functionality to disable or remove.

Exploit

  1. Disable or remove the critical functionality from the client code: Once the functionality has been determined, the adversary disables or removes the critical functionality from the client code to perform malicious actions that the server believes are prohibited.

  2. Techniques
    The adversary disables or removes the functionality from the client-side code to perform malicious actions, such as sending of dangerous content (such as scripts) to the server.
", "x_capec_extended_description": "\n Adversaries can, in some cases, get around logic put in place to 'guard' sensitive functionality or data. Client applications may include functionality that a server relies on for correct and secure operation. This functionality can include, but is not limited to, filters to prevent the sending of dangerous content to the server, logical functionality such as price calculations, and authentication logic to ensure that only authorized users are utilizing the client. If an adversary can disable this functionality on the client, they can perform actions that the server believes are prohibited. This can result in client behavior that violates assumptions by the server leading to a variety of possible attacks. In the above examples, this could include the sending of dangerous content (such as scripts) to the server, incorrect price calculations, or unauthorized access to server resources.\n ", "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--5c201b0f-aa6f-4220-a544-1e1e7ca8ecf7", "attack-pattern--014e5fc2-7564-4775-94aa-220601522b05" ], "x_capec_prerequisites": [ "The targeted server must assume the client performs important actions to protect the server or the server functionality. For example, the server may assume the client filters outbound traffic or that the client performs all price calculations correctly. Moreover, the server must fail to detect when these assumptions are violated by a client." ], "x_capec_resources_required": [ "The adversary must have access to a client and be able to modify the client behavior, often through reverse engineering. If the server is assuming specific client functionality, this usually means the server only recognizes a specific client application, rather than a broad class of client applications. Reverse engineering tools would likely be necessary." ], "x_capec_skills_required": { "High": "To reverse engineer the client-side code to disable/remove the functionality on the client that the server relies on.", "Low": "The adversary installs a web tool that allows scripts or the DOM model of web-based applications to be modified before they are executed in a browser. GreaseMonkey and Firebug are two examples of such tools." }, "x_capec_status": "Draft", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side.", "id": "course-of-action--5b0a3ddb-6d63-403e-8f60-bf821f6b65fe", "modified": "2023-01-24T00:00:00.000Z", "name": "coa-207-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--c5ee791d-5a7a-424b-8425-74c45b4c310e", "modified": "2023-01-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--5b0a3ddb-6d63-403e-8f60-bf821f6b65fe", "spec_version": "2.1", "target_ref": "attack-pattern--3c404955-b160-423f-b148-d4fa4727e3a9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Ship client-side application with integrity checks (code signing) when possible.", "id": "course-of-action--a354ac27-1c18-44cc-bff5-3b97838a8a13", "modified": "2023-01-24T00:00:00.000Z", "name": "coa-207-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--bc683ec3-bdbd-4f4b-9388-34935ef7440e", "modified": "2023-01-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a354ac27-1c18-44cc-bff5-3b97838a8a13", "spec_version": "2.1", "target_ref": "attack-pattern--3c404955-b160-423f-b148-d4fa4727e3a9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Use obfuscation and other techniques to prevent reverse engineering the client code.", "id": "course-of-action--3ccd2b17-b570-40d7-967b-b16308019cdb", "modified": "2023-01-24T00:00:00.000Z", "name": "coa-207-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--471fb693-94a4-42fa-a5d0-f5f7f15c36a9", "modified": "2023-01-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3ccd2b17-b570-40d7-967b-b16308019cdb", "spec_version": "2.1", "target_ref": "attack-pattern--3c404955-b160-423f-b148-d4fa4727e3a9", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker removes or modifies the logic on a client associated with monetary calculations resulting in incorrect information being sent to the server. A server may rely on a client to correctly compute monetary information. For example, a server might supply a price for an item and then rely on the client to correctly compute the total cost of a purchase given the number of items the user is buying. If the attacker can remove or modify the logic that controls these calculations, they can return incorrect values to the server. The attacker can use this to make purchases for a fraction of the legitimate cost or otherwise avoid correct billing for activities.", "external_references": [ { "external_id": "CAPEC-208", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/208.html" }, { "external_id": "CWE-602", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/602.html" } ], "id": "attack-pattern--014e5fc2-7564-4775-94aa-220601522b05", "modified": "2017-08-04T00:00:00.000Z", "name": "Removing/short-circuiting 'Purse' logic: removing/mutating 'cash' decrements", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--3c404955-b160-423f-b148-d4fa4727e3a9" ], "x_capec_domains": [ "Software" ], "x_capec_prerequisites": [ "The targeted server must rely on the client to correctly perform monetary calculations and must fail to detect errors in these calculations." ], "x_capec_resources_required": [ "The attacker must have access to the client for the targeted service (this step is trivial for most web-based services). The attacker must also be able to reverse engineer the client in order to locate and modify the client's purse logic. Reverse engineering tools would be necessary for this." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary creates a file with scripting content but where the specified MIME type of the file is such that scripting is not expected. The adversary tricks the victim into accessing a URL that responds with the script file. Some browsers will detect that the specified MIME type of the file does not match the actual type of its content and will automatically switch to using an interpreter for the real content type. If the browser does not invoke script filters before doing this, the adversary's script may run on the target unsanitized, possibly revealing the victim's cookies or executing arbitrary script in their browser.", "external_references": [ { "external_id": "CAPEC-209", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/209.html" }, { "external_id": "CWE-79", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/79.html" }, { "external_id": "CWE-20", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/20.html" }, { "external_id": "CWE-646", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/646.html" }, { "description": "OWASP Testing Guide (v4), The Open Web Application Security Project (OWASP)", "external_id": "REF-78", "source_name": "reference_from_CAPEC", "url": "http://www.owasp.org/index.php/Testing_for_Stored_Cross_site_scripting_(OWASP-DV-002)" } ], "id": "attack-pattern--b27e3b46-2838-4339-a570-006474c8c402", "modified": "2022-02-22T00:00:00.000Z", "name": "XSS Using MIME Type Mismatch", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--800f8095-99b6-4bb9-8bc6-8b9727201a2f" ], "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "For example, the MIME type text/plain may be used where the actual content is text/javascript or text/html. Since text does not contain scripting instructions, the stated MIME type would indicate that filtering is unnecessary. However, if the target application subsequently determines the file's real type and invokes the appropriate interpreter, scripted content could be invoked.", "In another example, img tags in HTML content could reference a renderable type file instead of an expected image file. The file extension and MIME type can describe an image file, but the file content can be text/javascript or text/html resulting in script execution. If the browser assumes all references in img tags are images, and therefore do not need to be filtered for scripts, this would bypass content filters." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the application for stored user-controllable inputs: Using a browser or an automated tool, an adversary follows all public links and actions on a web site. They record all areas that allow a user to upload content through an HTTP POST request. This is typically found in blogs or forums.

  2. Techniques
    Use a spidering tool to follow and record all links and analyze the web pages to file upload features
    Use a proxy tool to record all links visited during a manual traversal of the web application.
    Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.

Experiment

  1. Probe identified potential entry points for MIME type mismatch: The adversary uses the entry points gathered in the \"Explore\" phase as a target list and uploads files with scripting content, but whose MIME type is specified as a file type that cannot execute scripting content. If the application only checks the MIME type of the file, it may let the file through, causing the script to be executed by any user who accesses the file.

  2. Techniques
    Upload a script file with a MIME type of text/plain to a forum and then access the uploaded file to see if the script is executed. If possible, the script displays a unique identifier so the adversary knows for certain it was executed when testing.
  3. Store malicious XSS content: Once the adversary has determined which file upload locations are vulnerable to MIME type mismatch, they will upload a malicious script disguised as a non scripting file. The adversary can have many goals, from stealing session IDs, cookies, credentials, and page content from a victim.

  4. Techniques
    Use a tool such as BeEF to store a hook into the web application. This will alert the adversary when the victim has accessed the content and will give the adversary control over the victim's browser, allowing them access to cookies, user screenshot, user clipboard, and more complex XSS attacks.

Exploit

  1. Get victim to view stored content: In order for the attack to be successful, the victim needs to view the stored malicious content on the webpage.

  2. Techniques
    Send a phishing email to the victim containing a URL that will direct them to the malicious stored content.
    Simply wait for a victim to view the content. This is viable in situations where content is posted to a popular public forum.
", "x_capec_prerequisites": [ "The victim must follow a crafted link that references a scripting file that is mis-typed as a non-executable file.", "The victim's browser must detect the true type of a mis-labeled scripting file and invoke the appropriate script interpreter without first performing filtering on the content." ], "x_capec_resources_required": [ "The adversary must have the ability to source the file of the incorrect MIME type containing a script." ], "x_capec_status": "Draft", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "\n An adversary guesses, obtains, or \"rides\" a trusted identifier (e.g. session ID, resource ID, cookie, etc.) to perform authorized actions under the guise of an authenticated user or service.\n ", "external_references": [ { "external_id": "CAPEC-21", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/21.html" }, { "external_id": "CWE-290", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/290.html" }, { "external_id": "CWE-302", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/302.html" }, { "external_id": "CWE-346", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/346.html" }, { "external_id": "CWE-539", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/539.html" }, { "external_id": "CWE-6", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/6.html" }, { "external_id": "CWE-384", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/384.html" }, { "external_id": "CWE-664", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/664.html" }, { "external_id": "CWE-602", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/602.html" }, { "external_id": "CWE-642", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/642.html" }, { "description": "Access Token Manipulation", "external_id": "T1134", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1134" }, { "description": "Steal Application Access Token", "external_id": "T1528", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1528" }, { "description": "Steal Web Session Cookie", "external_id": "T1539", "source_name": "ATTACK", "url": "https://attack.mitre.org/wiki/Technique/T1539" }, { "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley", "external_id": "REF-1", "source_name": "reference_from_CAPEC" } ], "id": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "modified": "2022-09-29T00:00:00.000Z", "name": "Exploitation of Trusted Identifiers", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Access_Control": [ "Gain Privileges" ], "Authentication": [ "Gain Privileges" ], "Confidentiality": [ "Gain Privileges", "Read Data" ], "Integrity": [ "Modify Data" ] }, "x_capec_domains": [ "Software" ], "x_capec_example_instances": [ "\n Thin client applications like web applications are particularly vulnerable to session ID attacks. Since the server has very little control over the client, but still must track sessions, data, and objects on the server side, cookies and other mechanisms have been used to pass the key to the session data between the client and server. When these session keys are compromised it is trivial for an adversary to impersonate a user's session in effect, have the same capabilities as the authorized user. There are two main ways for an adversary to exploit session IDs.\n A brute force attack involves an adversary repeatedly attempting to query the system with a spoofed session header in the HTTP request. A web server that uses a short session ID can be easily spoofed by trying many possible combinations so the parameters session-ID= 1234 has few possible combinations, and an adversary can retry several hundred or thousand request with little to no issue on their side.\n The second method is interception, where a tool such as wireshark is used to sniff the wire and pull off any unprotected session identifiers. The adversary can then use these variables and access the application.\n ", "For example, in a message queuing system that allows service requesters to post messages to its queue through an open channel (such as anonymous FTP), authorization is done through checking group or role membership contained in the posted message. However, there is no proof that the message itself, the information in the message (such group or role membership), or the process that wrote the message to the queue is authentic and authorized to do so." ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Survey the application for Indicators of Susceptibility: Using a variety of methods, until one is found that applies to the target, the adversary probes for cookies, session tokens, or entry points that bypass identifiers altogether.

  2. Techniques
    Spider all available pages
    Attack known bad interfaces
    Search outward-facing configuration and properties files for identifiers.

Experiment

  1. Fetch samples: The adversary fetches many samples of identifiers. This may be through legitimate access (logging in, legitimate connections, etc.) or via systematic probing.

  2. Techniques
    An adversary makes many anonymous connections and records the session IDs assigned.
    An adversary makes authorized connections and records the session tokens or credentials issued.
    An adversary gains access to (legitimately or illegitimately) a nearby system (e.g., in the same operations network, DMZ, or local network) and makes a connection from it, attempting to gain the same privileges as a trusted system.

Exploit

  1. Impersonate: An adversary can use successful experiments or authentications to impersonate an authorized user or system or to laterally move within a system or application

  2. Spoofing: Malicious data can be injected into the target system or into a victim user's system by an adversary. The adversary can also pose as a legitimate user to perform social engineering attacks.

  3. Data Exfiltration: The adversary can obtain sensitive data contained within the system or application.

", "x_capec_extended_description": "\n Attacks leveraging trusted identifiers typically result in the adversary laterally moving within the local network, since users are often allowed to authenticate to systems/applications within the network using the same identifier. This allows the adversary to obtain sensitive data, download/install malware on the system, pose as a legitimate user for social engineering purposes, and more.\n Attacks on trusted identifiers take advantage of the fact that some software accepts user input without verifying its authenticity. Many server side processes are vulnerable to these attacks because the server to server communications have not been analyzed from a security perspective or the processes \"trust\" other systems because they are behind a firewall. Similarly, servers that use easy to guess or spoofable schemes for representing digital identity can also be vulnerable. Such systems frequently use schemes without cryptography and digital signatures (or with broken cryptography). Identifiers may be guessed or obtained due to insufficient randomness, poor protection (passed/stored in the clear), lack of integrity (unsigned), or improper correlation with access control policy enforcement points. Exposed configuration and properties files that contain sensitive data may additionally provide an adversary with the information needed to obtain these identifiers. An adversary may also \"ride\" an identifier via a malicious link, as is the case in Cross Site Request Forgery (CSRF) attacks.\n Regardless of the attack vector, successful spoofing and impersonation of trusted credentials can lead to an adversary breaking authentication, authorization, and audit controls with the target system or application.\n ", "x_capec_likelihood_of_attack": "High", "x_capec_parent_of_refs": [ "attack-pattern--414d0884-4f46-4a51-b4ea-72125c7f5f9e", "attack-pattern--56b4150a-10fd-42cd-85ff-1063625ec5f4", "attack-pattern--63f43efb-7a34-4302-b3dc-8245100fdea9", "attack-pattern--0939f361-ea31-454b-ae3d-4af2411b756d" ], "x_capec_prerequisites": [ "Server software must rely on weak identifier proof and/or verification schemes.", "Identifiers must have long lifetimes and potential for reusability.", "Server software must allow concurrent sessions to exist." ], "x_capec_resources_required": [ "Ability to deploy software on network.", "Ability to communicate synchronously or asynchronously with server." ], "x_capec_skills_required": { "Low": "To achieve a direct connection with the weak or non-existent server session access control, and pose as an authorized user" }, "x_capec_status": "Stable", "x_capec_typical_severity": "High", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: utilize strong federated identity such as SAML to encrypt and sign identity tokens in transit.", "id": "course-of-action--de3ee34b-075a-4ee0-8aee-606adc412d09", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-21-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--f9eaa515-4e04-4e48-a95a-a5cc76d3fae0", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--de3ee34b-075a-4ee0-8aee-606adc412d09", "spec_version": "2.1", "target_ref": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Use industry standards session key generation mechanisms that utilize high amount of entropy to generate the session key. Many standard web and application servers will perform this task on your behalf.", "id": "course-of-action--1b5eb714-1670-4a73-8ca3-0de95cf15371", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-21-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--65db9cb6-fc43-4034-b579-eb165dd5e4cb", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--1b5eb714-1670-4a73-8ca3-0de95cf15371", "spec_version": "2.1", "target_ref": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: If the identifier is used for authentication, such as in the so-called single sign on use cases, then ensure that it is protected at the same level of assurance as authentication tokens.", "id": "course-of-action--718ea228-55ed-4373-b43f-e69084b06529", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-21-2", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--e264f74e-3bd0-46ab-bd67-3526a6e9d54f", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--718ea228-55ed-4373-b43f-e69084b06529", "spec_version": "2.1", "target_ref": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: If the web or application server supports it, then encrypting and/or signing the identifier (such as cookie) can protect the ID if intercepted.", "id": "course-of-action--c1ce77d8-271a-4727-aafa-d0dad619d017", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-21-3", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--12007caf-e1d7-492f-a685-f88c073bccb6", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--c1ce77d8-271a-4727-aafa-d0dad619d017", "spec_version": "2.1", "target_ref": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Use strong session identifiers that are protected in transit and at rest.", "id": "course-of-action--a69d842f-709a-472e-a3e3-233815725789", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-21-4", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--5a4a61eb-f51c-417d-88d8-2417fea9f0a4", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--a69d842f-709a-472e-a3e3-233815725789", "spec_version": "2.1", "target_ref": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Utilize a session timeout for all sessions, for example 20 minutes. If the user does not explicitly logout, the server terminates their session after this period of inactivity. If the user logs back in then a new session key is generated.", "id": "course-of-action--e5ebd596-622e-4395-b338-85a54ce00b34", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-21-5", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--7c05cd2c-a62f-42aa-b4f2-db68b48a7d78", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--e5ebd596-622e-4395-b338-85a54ce00b34", "spec_version": "2.1", "target_ref": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Implementation: Verify authenticity of all identifiers at runtime.", "id": "course-of-action--3daed4ec-09d3-48c0-ac50-b37755e9928c", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-21-6", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--4a9103ab-a9ea-40f7-9a9c-2789bebcf094", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3daed4ec-09d3-48c0-ac50-b37755e9928c", "spec_version": "2.1", "target_ref": "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This attack pattern has been deprecated as it was deemed not to be a legitimate attack pattern.", "external_references": [ { "external_id": "CAPEC-211", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/211.html" } ], "id": "attack-pattern--2f50c4ba-bba9-456b-8fc3-7a551ed4c65f", "modified": "2018-07-31T00:00:00.000Z", "name": "DEPRECATED: Leveraging web tools (e.g. Mozilla's GreaseMonkey, Firebug) to change application behavior", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_status": "Deprecated", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An adversary leverages a legitimate capability of an application in such a way as to achieve a negative technical impact. The system functionality is not altered or modified but used in a way that was not intended. This is often accomplished through the overuse of a specific functionality or by leveraging functionality with design flaws that enables the adversary to gain access to unauthorized, sensitive data.", "external_references": [ { "external_id": "CAPEC-212", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/212.html" }, { "external_id": "CWE-1242", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1242.html" }, { "external_id": "CWE-1246", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1246.html" }, { "external_id": "CWE-1281", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/1281.html" } ], "id": "attack-pattern--c727c058-2c9d-4021-a1ec-81dd030dea59", "modified": "2021-06-24T00:00:00.000Z", "name": "Functionality Misuse", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Meta", "x_capec_consequences": { "Availability": [ "Other (Depending on the adversary's intended technical impact, a successful attack of this kind can compromise any or all elements of the security triad.)" ], "Confidentiality": [ "Gain Privileges (A successful attack of this kind can compromise the confidentiality of an authorized user's credentials.)", "Other (Depending on the adversary's intended technical impact, a successful attack of this kind can compromise any or all elements of the security triad.)" ], "Integrity": [ "Other (Depending on the adversary's intended technical impact, a successful attack of this kind can compromise any or all elements of the security triad.)" ] }, "x_capec_domains": [ "Software", "Hardware" ], "x_capec_likelihood_of_attack": "Medium", "x_capec_parent_of_refs": [ "attack-pattern--5b2d7149-c0f3-4b42-9c10-febe7dfd3ea5", "attack-pattern--4ee9fc30-e736-4f4f-b55b-8a3008214042", "attack-pattern--83fc5df7-bb04-4ce7-b308-c9428e8f4456", "attack-pattern--addd93c9-9278-4185-b402-e505d632c815", "attack-pattern--e680008c-a642-4feb-a1c4-a29b54eb284a", "attack-pattern--0cd20b07-0159-46ed-bff1-cf0dfd0b5a37" ], "x_capec_prerequisites": [ "The adversary has the capability to interact with the application directly.The target system does not adequately implement safeguards to prevent misuse of authorized actions/processes." ], "x_capec_skills_required": { "Low": "General computer knowledge about how applications are launched, how they interact with input/output, and how they are configured." }, "x_capec_status": "Stable", "x_capec_typical_severity": "Medium", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Perform comprehensive threat modeling, a process of identifying, evaluating, and mitigating potential threats to the application. This effort can help reveal potentially obscure application functionality that can be manipulated for malicious purposes.", "id": "course-of-action--2c554d44-955a-43f5-bf93-2d6bfe5ebcf0", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-212-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--264be4df-68bd-477a-8b05-e975efd6ada7", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--2c554d44-955a-43f5-bf93-2d6bfe5ebcf0", "spec_version": "2.1", "target_ref": "attack-pattern--c727c058-2c9d-4021-a1ec-81dd030dea59", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "When implementing security features, consider how they can be misused and compromised.", "id": "course-of-action--b6e8099d-d2e6-4786-a628-0dac80173c67", "modified": "2021-06-24T00:00:00.000Z", "name": "coa-212-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--3688d3c6-8574-4547-aa9d-2d75e6da59b3", "modified": "2021-06-24T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b6e8099d-d2e6-4786-a628-0dac80173c67", "spec_version": "2.1", "target_ref": "attack-pattern--c727c058-2c9d-4021-a1ec-81dd030dea59", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This attack pattern has been deprecated as it is a duplicate of the existing attack pattern \"CAPEC-126 : Path Traversal\". Please refer to this other CAPEC going forward.", "external_references": [ { "external_id": "CAPEC-213", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/213.html" } ], "id": "attack-pattern--3ec96bbd-da0c-4640-a8ae-50e506206a2b", "modified": "2017-08-04T00:00:00.000Z", "name": "DEPRECATED: Directory Traversal", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Standard", "x_capec_status": "Deprecated", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "This attack pattern has been deprecated as it was merged into \"CAPEC-215 : Fuzzing for application mapping\". Please refer to this other CAPEC going forward.", "external_references": [ { "external_id": "CAPEC-214", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/214.html" } ], "id": "attack-pattern--27f34b27-52ae-42ae-a5c4-1155641eab90", "modified": "2020-12-17T00:00:00.000Z", "name": "DEPRECATED: Fuzzing for garnering J2EE/.NET-based stack traces, for application mapping", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_status": "Deprecated", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "An attacker sends random, malformed, or otherwise unexpected messages to a target application and observes the application's log or error messages returned. The attacker does not initially know how a target will respond to individual messages but by attempting a large number of message variants they may find a variant that trigger's desired behavior. In this attack, the purpose of the fuzzing is to observe the application's log and error messages, although fuzzing a target can also sometimes cause the target to enter an unstable state, causing a crash.", "external_references": [ { "external_id": "CAPEC-215", "source_name": "capec", "url": "https://capec.mitre.org/data/definitions/215.html" }, { "external_id": "CWE-209", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/209.html" }, { "external_id": "CWE-532", "source_name": "cwe", "url": "http://cwe.mitre.org/data/definitions/532.html" } ], "id": "attack-pattern--b5618a54-4646-423d-8676-b2eb56dd4328", "modified": "2022-09-29T00:00:00.000Z", "name": "Fuzzing for application mapping", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "attack-pattern", "x_capec_abstraction": "Detailed", "x_capec_child_of_refs": [ "attack-pattern--49132d37-44e8-458c-a06e-0e5b9ac9bbd6", "attack-pattern--7f0ec88f-b057-4a73-93d8-8a30cfdbcf77" ], "x_capec_consequences": { "Confidentiality": [ "Other (Information Leakage)" ] }, "x_capec_domains": [ "Software", "Software" ], "x_capec_example_instances": [ "\n The following code generates an error message that leaks the full pathname of the configuration file.\n $ConfigDir = \"/home/myprog/config\";$uname = GetUserInput(\"username\");ExitError(\"Bad hacker!\") if ($uname !~ /^\\w+$/);$file = \"$ConfigDir/$uname.txt\";if (! (-e $file)) { ExitError(\"Error: $file does not exist\"); }...\n If this code is running on a server, such as a web application, then the person making the request should not know what the full pathname of the configuration directory is. By submitting a username that does not produce a $file that exists, an attacker could get this pathname. It could then be used to exploit path traversal or symbolic link following problems that may exist elsewhere in the application.\n ", "\n In languages that utilize stack traces, revealing them can give adversaries information that allows them to map functions and file locations for an application. The following Java method prints out a stack trace that exposes the application to this attack pattern.\n public void httpGet(HttpServletRequest request, HttpServletResponse response) {try {processRequest();} catch (Exception ex) {ex.printStackTrace(response.getWriter());\n return;}}\n If this code is running on a server, such as a web application, then the adversary could cause the exception to be printed through fuzzing.\n " ], "x_capec_execution_flow": "

Execution Flow

Explore

  1. Observe communication and inputs: The fuzzing adversary observes the target system looking for inputs and communications between modules, subsystems, or systems.

  2. Techniques
    Network sniffing. Using a network sniffer such as wireshark, the adversary observes communications into and out of the target system.
    Monitor API execution. Using a tool such as ktrace, strace, APISpy, or another debugging tool, the adversary observes the system calls and API calls that are made by the target system, and the nature of their parameters.
    Observe inputs using web inspection tools (OWASP's WebScarab, Paros, TamperData, TamperIE, etc.)

Experiment

  1. Generate fuzzed inputs: Given a fuzzing tool, a target input or protocol, and limits on time, complexity, and input variety, generate a list of inputs to try. Although fuzzing is random, it is not exhaustive. Parameters like length, composition, and how many variations to try are important to get the most cost-effective impact from the fuzzer.

  2. Techniques
    Boundary cases. Generate fuzz inputs that attack boundary cases of protocol fields, inputs, or other communications limits. Examples include 0xff and 0x00 for single-byte inputs. In binary situations, approach each bit of an individual field with on and off (e.g., 0x80).
    Attempt arguments to system calls or APIs. The variations include payloads that, if they were successful, could lead to a compromise on the system.
  3. Observe the outcome: Observe the outputs to the inputs fed into the system by fuzzers and see if there are any log or error messages that might provide information to map the application

Exploit

  1. Craft exploit payloads: An adversary usually needs to modify the fuzzing parameters according to the observed error messages to get the desired sensitive information for the application. To defeat correlation, the adversary may try changing the origin IP addresses or client browser identification strings or start a new session from where they left off in obfuscating the attack.

  2. Techniques
    Modify the parameters in the fuzzing tool according to the observed error messages. Repeat with enough parameters until the application has been sufficiently mapped.
    If the application rejects the large amount of fuzzing messages from the same host machine, the adversary needs to hide the attacks by changing the IP addresses or other credentials.
", "x_capec_extended_description": "\n By observing logs and error messages, the attacker can learn details about the configuration of the target application and might be able to cause the target to disclose sensitive information. In applications that return a stack trace along with the error, this can enumerate the chain of methods that led up to the point where the error was encountered. This can not only reveal the names of the methods (some of which may have known weaknesses) but possibly also the location of class files and libraries as well as parameter values. In some cases, the stack trace might even disclose sensitive configuration or user information.\n ", "x_capec_likelihood_of_attack": "High", "x_capec_prerequisites": [ "The target application must fail to sanitize incoming messages adequately before processing." ], "x_capec_resources_required": [ "Fuzzing tools, which automatically generate and send message variants, are necessary for this attack. The attacker must have sufficient access to send messages to the target. The attacker must also have the ability to observe the target application's log and/or error messages in order to collect information about the target." ], "x_capec_skills_required": { "Medium": "Although fuzzing parameters is not difficult, and often possible with automated fuzzing tools, interpreting the error conditions and modifying the parameters so as to move further in the process of mapping the application requires detailed knowledge of target platform, the languages and packages used as well as software design." }, "x_capec_status": "Draft", "x_capec_typical_severity": "Low", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: Construct a 'code book' for error messages. When using a code book, application error messages aren't generated in string or stack trace form, but are catalogued and replaced with a unique (often integer-based) value 'coding' for the error. Such a technique will require helpdesk and hosting personnel to use a 'code book' or similar mapping to decode application errors/logs in order to respond to them normally.", "id": "course-of-action--35e6212f-ac45-4ebb-88b6-9242f8ae2bba", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-215-0", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--e83220a2-4674-498f-8f1f-684464a2de79", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--35e6212f-ac45-4ebb-88b6-9242f8ae2bba", "spec_version": "2.1", "target_ref": "attack-pattern--b5618a54-4646-423d-8676-b2eb56dd4328", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "description": "Design: wrap application functionality (preferably through the underlying framework) in an output encoding scheme that obscures or cleanses error messages to prevent such attacks. Such a technique is often used in conjunction with the above 'code book' suggestion.", "id": "course-of-action--81ed39dc-bf22-4d9b-901c-370ff16e02f3", "modified": "2022-09-29T00:00:00.000Z", "name": "coa-215-1", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "spec_version": "2.1", "type": "course-of-action", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--6313ef4d-92ce-4fa2-89d3-e46c3645bc94", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--81ed39dc-bf22-4d9b-901c-370ff16e02f3", "spec_version": "2.1", "target_ref": "attack-pattern--b5618a54-4646-423d-8676-b2eb56dd4328", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--98fe200c-e422-46ab-a1e3-1ece266fe87a", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--b3b7fd0f-034a-4c49-b011-83527159115d", "spec_version": "2.1", "target_ref": "attack-pattern--b5618a54-4646-423d-8676-b2eb56dd4328", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--0b7e3a6f-e895-4472-8fb2-87fd4ae495ac", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--c4fec7a6-c3eb-48d8-b840-e4fad7c771c8", "spec_version": "2.1", "target_ref": "attack-pattern--b5618a54-4646-423d-8676-b2eb56dd4328", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd", "id": "relationship--2827e6fe-cb69-4bb9-a62c-a073e37c5f85", "modified": "2022-09-29T00:00:00.000Z", "object_marking_refs": [ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d" ], "relationship_type": "mitigates", "source_ref": "course-of-action--3205de43-5293-4d4e-9d84-74590957951a", "spec_version": "2.1", "target_ref": "attack-pattern--b5618a54-4646-423d-8676-b2eb56dd4328", "type": "relationship", "x_capec_version": "3.9" }, { "created": "2014-06-23T00:00:00.000Z", "created_by