📄 Что такое XPath Injection?
Когда речь заходит об инъекциях, обычно вспоминают SQL Injection.
Но не все приложения используют базы данных SQL. Некоторые работают с
XML-документами, а для поиска данных применяют язык запросов
XPath.
Именно здесь может возникнуть уязвимость
XPath Injection.
📌 XPath Injection — это уязвимость, при которой злоумышленник может повлиять на XPath-запрос, изменив его логику с помощью специально сформированного пользовательского ввода.
Другими словами, приложение начинает искать данные не так, как задумал разработчик.
🧠 Что такое XPath?
XPath (XML Path Language) — это язык запросов, который используется для поиска элементов в XML-документах.
XML может применяться для:
— хранения настроек приложения;
— обмена данными между сервисами;
— хранения информации о пользователях;
— работы с некоторыми устаревшими корпоративными системами.
💀 Чем это опасно?
Если приложение уязвимо, атакующий может:
— обойти проверку подлинности;
— получить доступ к данным, которые не должен видеть;
— извлечь конфиденциальную информацию;
— изменить логику поиска данных.
Последствия зависят от того, какую роль XML играет в работе приложения.
🛡 Как защититься?
Основные рекомендации:
— не формировать XPath-запросы путём объединения строк;
— проверять и валидировать пользовательский ввод;
— использовать безопасные механизмы передачи параметров в запросы;
— ограничивать доступ к конфиденциальным XML-данным.
📌 Сегодня XPath Injection встречается значительно реже, чем SQL Injection или XSS, поскольку XML всё чаще уступает место JSON.
Однако во многих корпоративных системах, интеграционных решениях и устаревших приложениях XML по-прежнему активно используется, поэтому знание этой уязвимости остаётся полезным для специалиста по веб-безопасности.
#web #owasp #xpath #xml #injection #pentest