XPath injection is a type of vulnerability that allows attackers to execute arbitrary queries on XML databases. XPath injection vulnerabilities are similar to SQL injection vulnerabilities, but they affect XML databases instead of SQL databases. XPath injection is often more dangerous than SQL injection, because permissions are not enforced and the malicious queries can access every part of the XML documents. XPath injection applies to any application that uses XPath to query XML documents.
XPath injection attacks may allow an attacker to retrieve, manipulate, or destroy data stored in XML documents. The exact impact depends on the type of XML data that is exposed via XPath injection. If authentication data is exposed, the attacker is able to take over any user account. By taking over the administrator's account, the attacker is able to take full control of the application.
To prevent this vulnerability, validate all input and use parameterized APIs if possible.
Validate all input:
To check for adequate protection against this vulnerability, find all code that uses XPath queries and make sure it does not include unvalidated user input.
All input is validated:
Computer Based Training Links
Use the following Computer Based Training course(s) for more background information about this type of vulnerabilities.
Fundamentals of Web 2.0 Security
This course introduces you to the fundamentals of secure Web 2.0 development. The course begins with a discussion about Web 2.0, its evolution, and the technologies behind it. The course describes common Web 2.0 attacks that can cause significant loss to organizations. It reviews the best practices that you should incorporate to mitigate the risks from Web 2.0 attacks, as well as practices to avoid. The course concludes with a walk-through of a software system scenario that can help you better understand Web 2.0 attacks and apply the best practices discussed in the course.
Valid login credentials and enrollment in the course itself are required to access Team Professor content. If you need login credentials, please contact firstname.lastname@example.org for help.
- For more information about XPath injection, see https://www.owasp.org/index.php/XPATH_Injection