XPath-инъекция
Что такое XPath-инъекция?
XPath-инъекцияИнъекционная уязвимость, при которой недоверенный ввод изменяет XPath-запрос к XML-документу, позволяя похитить данные или обойти аутентификацию.
XPath-инъекция возникает, когда приложение собирает XPath-запросы к XML-документу через конкатенацию строк с пользовательским вводом, аналогично классической SQL-инъекции. Атакующий выходит из задуманного выражения с помощью кавычек, булевых тавтологий вроде ' or '1'='1 или комментариев, извлекает произвольные узлы, обходит формы аутентификации, опирающиеся на XML-хранилище, либо выполняет слепую эксфильтрацию через булевы и временные оракулы. Уязвимость чаще встречается в устаревших SOAP-сервисах, конфигурационных бэкендах и приложениях, хранящих учётные данные в XML. Защита — параметризованные XPath-API, строгая валидация по белому списку и перенос конфиденциальных запросов в безопасные хранилища.
● Примеры
- 01
Запрос входа //user[name/text()='admin' or '1'='1' and password/text()='x'] обходит аутентификацию.
- 02
Слепая эксфильтрация через булевы условия вроде substring(//secret,1,1)='a'.
● Частые вопросы
Что такое XPath-инъекция?
Инъекционная уязвимость, при которой недоверенный ввод изменяет XPath-запрос к XML-документу, позволяя похитить данные или обойти аутентификацию. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает XPath-инъекция?
Инъекционная уязвимость, при которой недоверенный ввод изменяет XPath-запрос к XML-документу, позволяя похитить данные или обойти аутентификацию.
Как работает XPath-инъекция?
XPath-инъекция возникает, когда приложение собирает XPath-запросы к XML-документу через конкатенацию строк с пользовательским вводом, аналогично классической SQL-инъекции. Атакующий выходит из задуманного выражения с помощью кавычек, булевых тавтологий вроде ' or '1'='1 или комментариев, извлекает произвольные узлы, обходит формы аутентификации, опирающиеся на XML-хранилище, либо выполняет слепую эксфильтрацию через булевы и временные оракулы. Уязвимость чаще встречается в устаревших SOAP-сервисах, конфигурационных бэкендах и приложениях, хранящих учётные данные в XML. Защита — параметризованные XPath-API, строгая валидация по белому списку и перенос конфиденциальных запросов в безопасные хранилища.
Как защититься от XPath-инъекция?
Защита от XPath-инъекция обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия XPath-инъекция?
Распространённые альтернативные названия: Инъекция XPath-запросов.
● Связанные термины
- attacks№ 1084
SQL-инъекция
Атака внедрения кода, которая встраивает управляемый злоумышленником SQL в запрос к базе данных, позволяя читать, изменять или уничтожать данные.
- attacks№ 612
LDAP-инъекция
Инъекционная атака, при которой через неочищенный ввод изменяются фильтры поиска LDAP или DN, что позволяет обойти аутентификацию или прочитать данные каталога.
- attacks№ 1255
XML-инъекция
Атака, при которой в обработку XML внедряются вредоносные теги, атрибуты или фрагменты XPath, чтобы изменить логику или извлечь данные.
- attacks№ 1257
XXE-атака
Атака на XML-парсеры, использующая разрешение внешних сущностей для чтения файлов, разведки внутренних сетей или вызова отказа в обслуживании.
- appsec№ 538
Валидация ввода
Серверная проверка того, что каждый недоверенный ввод соответствует ожидаемому типу, длине, диапазону, формату и набору значений до его обработки приложением.
- attacks№ 202
Внедрение команд
Атака, при которой пользовательский ввод без фильтрации передаётся в системный шелл, и приложение выполняет команды, заданные злоумышленником.