Съдържание:
Определение - Какво означава XPath Injection?
XPath инжектиране е техника на атака, използвана при експлоатация на приложения, използвани за конструиране на XPath заявки на базата на предоставените от потребителя входове. Може да се използва директно от приложение за заявка на XML документ, дори като част от по-голям процес като XSLT трансформация в XML документ. В сравнение със SQL инжекциите, XPath инжекциите са по-разрушителни, тъй като XPath липсва контрол на достъпа и осигурява запитване на пълни бази данни. Пълното запитване на SQL база данни е трудно, тъй като метатабелите не могат да бъдат запитвани с помощта на редовни заявки.
Techopedia обяснява XPath Injection
XPath, като стандартен език, има синтаксис, независим от внедряването. Това прави атаката по-автоматизирана по своя характер. XPath инжекционната атака работи по подобен начин като SQL инжектирането, като уебсайтът използва предоставена от потребителя информация, за да изгради XPath заявката за XML данни. Неправилна информация се инжектира умишлено в уебсайта, което позволява на атакуващия да разбере метода, по който XML данните са структурирани, за да получи достъп до данни, който в противен случай би останал неоторизиран. След това нападателите могат да продължат да повишават привилегиите, които имат на уебсайта, като манипулират процеса на удостоверяване на XML данни. С други думи, подобно на SQL инжектирането, техниката е да се определят определени атрибути и да се получат шаблоните, които могат да бъдат съпоставени, които след това дават възможност на атакуващия да заобиколи автентификацията или да получи достъп до информация по неразрешен начин. Най-голямата разлика между инжекцията XPath и SQL инжектирането е, че инжекцията XPath използва XML файлове за съхранение на данни, докато SQL използва база данни.
Инжектирането на XPath може да бъде предотвратено с помощта на техники за защита, като например саниране на потребителски входове или третиране на всички потребителски данни като ненадеждни и извършване на необходимите техники за саниране или задълбочено тестване на приложения, които доставят или използват потребителските входове.