CAPECattack pattern
CAPEC-591 Reflected XSS
Very High
Official page ↗
- Abstraction
- Detailed
- Status
- Stable
- Likelihood of attack
- High
- Typical severity
- Very High
- CAPEC version
- 3.9
Description
This type of attack is a form of Cross-Site Scripting (XSS) where a malicious script is "reflected" off a vulnerable web application and then executed by a victim's browser. The process starts with an adversary delivering a malicious script to a victim and convincing the victim to send the script to the vulnerable web application.
Extended description
The most common method of this is through a phishing email where the adversary embeds the malicious script with a URL that the victim then clicks on. In processing the subsequent request, the vulnerable web application incorrectly considers the malicious script as valid input and uses it to creates a reposnse that is then sent back to the victim. To launch a successful Reflected XSS attack, an adversary looks for places where user-input is used directly in the generation of a response. This often involves elements that are not expected to host scripts such as image tags (<img>), or the addition of event attibutes such as onload and onmouseover. These elements are often not subject to the same input validation, output encoding, and other content filtering and checking routines.
Execution flow
1. [Explore] [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. [Experiment] [Probe identified potential entry points for reflected XSS vulnerability] The adversary uses the entry points gathered in the "Explore" phase as a target list and injects various common script payloads and special characters to determine if an entry point actually represents a vulnerability and to characterize the extent to which the vulnerability can be exploited.
3. [Experiment] [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. [Exploit] [Get victim to click URL] In order for the attack to be successful, the victim needs to access the malicious URL.
Prerequisites
• An application that leverages a client-side web browser with scripting enabled.
• An application that fail to adequately sanitize or encode untrusted input.
Skills required
• [Medium] Requires the ability to write malicious scripts and embed them into HTTP requests.
Consequences
• Confidentiality: Read Data
• Confidentiality, Authorization, Access Control: Gain Privileges
• Confidentiality, Integrity, Availability: Execute Unauthorized Commands
• Integrity: Modify Data
Mitigations
• Use browser technologies that do not allow client-side scripting.
• Utilize strict type, character, and encoding enforcement.
• Ensure that all user-supplied input is validated before use.
Related
Child of · CAPEC (1)
- CAPEC-63 Cross-Site Scripting (XSS) attack pattern
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
Referenced by CAPEC · child of (9)
- CAPEC-18 XSS Targeting Non-Script Elements attack pattern
- CAPEC-198 XSS Targeting Error Pages attack pattern
- CAPEC-199 XSS Using Alternate Syntax attack pattern
- CAPEC-243 XSS Targeting HTML Attributes attack pattern
- CAPEC-244 XSS Targeting URI Placeholders attack pattern
- CAPEC-245 XSS Using Doubled Characters attack pattern
- CAPEC-247 XSS Using Invalid Characters attack pattern
- CAPEC-32 XSS Through HTTP Query Strings attack pattern
- CAPEC-86 XSS Through HTTP Headers attack pattern
Referenced by CWE · attack pattern (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness