Inhaltsverzeichnis:
Definition - Was bedeutet XPath Injection?
Die XPath-Injektion ist eine Angriffstechnik, die zum Ausnutzen von Anwendungen zum Erstellen von XPath-Abfragen auf der Grundlage der vom Benutzer eingegebenen Eingaben verwendet wird. Es kann direkt von einer Anwendung zum Abfragen eines XML-Dokuments verwendet werden, auch im Rahmen eines größeren Prozesses wie der XSLT-Umwandlung in ein XML-Dokument. Im Vergleich zu SQL-Injections sind XPath-Injections destruktiver, da XPath keine Zugriffskontrolle besitzt und die Abfrage vollständiger Datenbanken ermöglicht. Das vollständige Abfragen einer SQL-Datenbank ist schwierig, da Metatables nicht mit regulären Abfragen abgefragt werden können.
Techopedia erklärt XPath Injection
XPath ist eine Standardsprache und verfügt über eine von der Implementierung unabhängige Syntax. Dies macht den Angriff automatisierter. Ein XPath-Injection-Angriff funktioniert ähnlich wie ein SQL-Injection-Angriff, wobei die Website die vom Benutzer bereitgestellten Informationen verwendet, um die XPath-Abfrage für die XML-Daten zu erstellen. Fehlerhafte Informationen werden absichtlich in die Website eingefügt, sodass der Angreifer die Methode ermitteln kann, mit der die XML-Daten strukturiert werden, um Datenzugriffe zu erhalten, die ansonsten nicht autorisiert wären. Angreifer können dann die Berechtigungen für die Website erhöhen, indem sie den XML-Datenauthentifizierungsprozess manipulieren. Mit anderen Worten, wie bei der SQL-Injection besteht die Technik darin, bestimmte Attribute anzugeben und die Muster zu ermitteln, die abgeglichen werden können, damit der Angreifer die Authentifizierung umgehen oder unbefugt auf Informationen zugreifen kann. Der größte Unterschied zwischen XPath-Injection und SQL-Injection besteht darin, dass XPath-Injection XML-Dateien zur Datenspeicherung verwendet, während SQL eine Datenbank verwendet.
Die XPath-Injektion kann mithilfe von Abwehrtechniken wie der Bereinigung von Benutzereingaben oder der Behandlung aller Benutzereingaben als nicht vertrauenswürdig und der Durchführung der erforderlichen Bereinigungstechniken oder der ausführlichen Prüfung von Anwendungen, die Benutzereingaben bereitstellen oder verwenden, verhindert werden.