Feature Value
Type Detection
Covered by Agent

Similarly to SQL Injection, XPath Injection attacks occur when a website uses user-supplied information to construct an XPath query for XML data. By sending intentionally malformed information to the website, an attacker can find out how the XML data is structured, or access data that he may not normally have access to. He may even be able to elevate his privileges on the website if the XML data is being used for authentication (such as an XML-based user file).

Querying XML is done with XPath, a type of simple descriptive statement that allows the XML query to locate a piece of information. Like SQL, you can specify certain attributes to find, and patterns to match. When using XML for a website it is common to accept some form of input on the query string to identify the content to locate and display on the page. This input must be sanitized to verify that it does not interfere with the XPath query and return the wrong data.

XPath is a standard language; its notation/syntax is always implementation independent, which means the attack may be automated. There are no different dialects as it takes place in requests to the SQL databases.

Because there is no level access control it is possible to get the entire document. We will not encounter any limitations as we may know from SQL injection attacks.

More information

How to solve it

Properly sanitize insecure inputs before using them in XPath queries