17 Фев, 2023

Внедрение XPath

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Аббревиатура уязвимости XPath injection - “XpI”, а название - “XPath Injection”.

Внедрение XPath - это тип инъекционной атаки, которая использует уязвимости в обработке приложением пользовательского ввода, предназначенного для использования в запросах XPath. XPath - это язык, используемый для выбора и фильтрации данных в XML-документах, и обычно используется в веб-приложениях для извлечения информации из источников XML-данных.

Злоумышленник может воспользоваться уязвимостью внедрения XPath, отправив специально созданные входные данные, предназначенные для изменения поведения запроса XPath и извлечения конфиденциальной информации из базы данных приложения. Это может привести к раскрытию конфиденциальных данных, таких как учетные данные пользователя, личная информация и другие конфиденциальные данные, которые хранятся в базе данных приложения.

Атаки с использованием XPath обычно выполняются путем вставки вредоносного кода в поля ввода, которые предназначены для использования в запросе XPath. Этот код может изменять поведение запроса, например, путем добавления дополнительных условий, которые позволяют злоумышленнику извлекать конфиденциальные данные, которые в противном случае были бы защищены.

Типы инъекций XPath

Несколько общеизвестных типов атак с использованием XPath-инъекций, в том числе:

  1. Базовая инъекция XPath: В этом типе атаки злоумышленник использует одинарную кавычку (‘) или двойную кавычку (“), чтобы вырваться из параметризованного запроса и вставить вредоносный код в запрос XPath.

  2. Внедрение XPath на основе объединения: в этом типе атаки злоумышленник использует оператор “union” для объединения результатов двух или более запросов. Это может быть использовано для извлечения конфиденциальных данных из базы данных приложения.

  3. Внедрение XPath на основе ошибок: при этом типе атаки злоумышленник использует ошибку в обработке приложением запросов XPath для извлечения конфиденциальных данных. Это можно сделать, отправив входные данные, предназначенные для запуска ошибки в запросе XPath приложения.

  4. Слепая инъекция XPath: при этом типе атаки злоумышленник не может увидеть результаты запроса, но все равно может изменить поведение запроса для извлечения конфиденциальных данных.

  5. Внеполосная инъекция XPath: при этом типе атаки злоумышленник использует приложение для инициирования подключения к внешнему серверу, который может быть использован для извлечения конфиденциальных данных.

  6. Внедрение XPath на основе времени: в этом типе атаки злоумышленник использует задержку, чтобы определить, является ли конкретное условие истинным или ложным. Это может быть использовано для извлечения конфиденциальных данных из базы данных приложения.

Примеры различных запросов, которые можно использовать для тестирования на внедрение XPath

 Простой запрос на получение:

				
					GET /search?q=red HTTP/1.1
Host: example.com
				
			

Этот запрос запрашивает конечную точку “поиск” с параметром “q”, установленным на “красный”. Злоумышленник может попытаться внедрить вредоносный код XPath в этот параметр, чтобы манипулировать результатами запроса.

POST-запрос с полезной нагрузкой JSON:

				
					POST /api/search HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "query": "//books/book[price>10]"
}
				
			

Этот запрос отправляет полезную нагрузку JSON в конечную точку “поиска”. Злоумышленник может попытаться внедрить вредоносный код XPath в параметр “запрос”, чтобы манипулировать результатами запроса.

POST-запрос с полезной нагрузкой XML:

				
					POST /api/search HTTP/1.1
Host: example.com
Content-Type: application/xml

<search>
  <query>//books/book[price>10]</query>
</search>
				
			

Этот запрос отправляет полезную нагрузку XML в конечную точку “поиска”. Злоумышленник может попытаться внедрить вредоносный код XPath в параметр “query”, чтобы манипулировать результатами запроса.

Загрязнение параметров HTTP:

				
					GET /search?q=red&q=green HTTP/1.1
Host: example.com
				
			

Этот запрос запрашивает конечную точку “поиск” с параметром “q”, установленным на “красный” и “зеленый”. Злоумышленник может попытаться внедрить вредоносный код XPath в параметр “q”, чтобы манипулировать результатами запроса.

Запрос на основе файлов cookie:

				
					GET /search HTTP/1.1
Host: example.com
Cookie: sessionid=123456; user=alice; search_query=//books/book[price>10]
				
			

Этот запрос запрашивает конечную точку “search” с помощью файла cookie, который устанавливает параметр “search_query” для запроса XPath. Злоумышленник может попытаться внедрить вредоносный код XPath в параметр “search_query”, чтобы манипулировать результатами запроса.

Важно иметь глубокое понимание XPath и безопасности веб-приложений, чтобы правильно идентифицировать и смягчать эти типы атак.

Примеры использования XPath Injection

Извлечение конфиденциальной информации:

Если целевое приложение возвращает разные ответы для допустимых и недопустимых выражений XPath, злоумышленник может использовать Burp Suite, чтобы определить, какие выражения являются допустимыми, и использовать их для извлечения конфиденциальной информации. Например, злоумышленник может отправить запрос с таким параметром, как этот:

				
					POST /search HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 40

searchTerm=John&category=' or 1=1 or 'a'='a
				
			

Если приложение возвращает другой ответ для введенного выражения, злоумышленник может использовать это для извлечения конфиденциальной информации. Например, злоумышленник может попытаться извлечь пароль администратора с помощью выражения XPath, подобного этому:

				
					POST /search HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 89

searchTerm=John&category=' or 1=1 or password[contains(.,'password')] or ''
				
			

Если приложение возвращает пароль администратора, злоумышленник успешно воспользовался уязвимостью XPath Injection.

Изменение данных:

Если целевое приложение позволяет злоумышленнику отправлять данные, которые затем используются в запросе XPath, злоумышленник может использовать Burp Suite для изменения запроса и изменения данных. Например, злоумышленник может отправить запрос на обновление адреса электронной почты пользователя следующим образом:

				
					POST /updateUser HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 51

userId=123&newEmail=test@example.com&password=pass123
				
			

Если приложение использует параметр password в запросе XPath, злоумышленник может изменить запрос, чтобы обойти проверку подлинности и обновить адрес электронной почты. Например, злоумышленник может отправить такой запрос:

				
					POST /updateUser HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 84

userId=123&newEmail=test@example.com&password=' or 1=1 or //user[id=123]/email='attacker@example.com' or ''
				
			

Это обновит адрес электронной почты пользователя с идентификатором 123 на “[email protected]“.

Отказ в обслуживании:

Если целевое приложение неправильно проверяет вводимые пользователем данные перед использованием их в запросе XPath, злоумышленник может использовать Burp Suite для отправки неверно сформированного запроса, который приводит к сбою приложения или его отказу отвечать на запросы. Например, злоумышленник может отправить такой запрос:

				
					POST /search HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 36

searchTerm=' or 1=1 or //*[1=1][1=1] or ''
				
			

Этот запрос намеренно искажен и может привести к аварийному завершению работы приложения или его отказу отвечать на запросы, что приведет к отказу в обслуживании.

Методы повышения привилегий Инъекции XPath

Методы повышения привилегий для внедрения XPath включают использование уязвимости для получения расширенного доступа и контроля над целевой системой или приложением.

Вот несколько примеров методов повышения привилегий для инъекций XPath:

1. Изменение ролей и разрешений пользователей:

В некоторых приложениях роли пользователей и разрешения хранятся в базе данных, и доступ к ним осуществляется с помощью запросов XPath. Если существует уязвимость для внедрения XPath, злоумышленник может изменить эти запросы, чтобы повысить свои собственные привилегии. Например, злоумышленник может внедрить запрос XPath, который изменяет их роль пользователя, чтобы предоставить им дополнительные привилегии, такие как доступ на уровне администратора.

2. Изменение списков контроля доступа (ACL):

Списки управления доступом (ACL) используются во многих приложениях для ограничения доступа к ресурсам на основе ролей пользователей и разрешений. Если приложение использует запросы XPath для проверки списков управления доступом, злоумышленник может внедрить вредоносный код, чтобы изменить эти запросы и получить доступ к ограниченным ресурсам. Например, злоумышленник может внедрить запрос XPath, который предоставляет ему доступ к конфиденциальным файлам или каталогам.

3. Обход аутентификации и авторизации:

Если приложение использует запросы XPath для проверки учетных данных или разрешений пользователя, злоумышленник может внедрить вредоносный код, чтобы обойти эти проверки и получить доступ к ограниченным ресурсам. Например, злоумышленник может внедрить запрос XPath, который обходит проверку подлинности и предоставляет им доступ к административной панели или другим ограниченным областям.

4. Внедрение вредоносного кода:

Уязвимость при внедрении XPath также может быть использована для внедрения вредоносного кода в приложение или систему. Это может быть использовано для получения контроля над системой или кражи конфиденциальной информации. Например, злоумышленник может внедрить запрос XPath, который запускает вредоносный скрипт для загрузки и установки вредоносного ПО в целевой системе.

5. Доступ к системным ресурсам:

В некоторых случаях уязвимость внедрения XPath может быть использована для получения доступа к системным ресурсам, которые обычно ограничены. Например, злоумышленник может внедрить запрос XPath, который извлекает пароли или другую конфиденциальную информацию, хранящуюся в системном файле.

Общая методология и контрольный список для тестирования инъекций XPath

1. Определите области, в которых используются запросы XPath:

Первым шагом является определение областей, в которых в приложении используются запросы XPath, таких как поля поиска, фильтры и другие поля ввода.

2. Убедитесь, что проверка входных данных и очистка выполнены:

Проверьте, проверяет ли приложение и очищает ли пользовательский ввод, чтобы предотвратить внедрение вредоносного кода. Если проверка и очистка отсутствуют, приложение, вероятно, уязвимо для внедрения XPath.

3. Определите тип уязвимости внедрения XPath:

Уязвимости, связанные с внедрением XPath, могут быть разных типов, таких как основанные на логических значениях, основанные на ошибках и основанные на времени. Определение типа уязвимости может помочь в выборе подходящей методологии тестирования.

4. Тест на внедрение XPath на основе логических значений:

Внедрение XPath на основе логических значений является распространенным типом уязвимости, которая включает в себя внедрение логических операторов, таких как “и” и “или", для манипулирования результатами запроса XPath. Проверьте эту уязвимость, введя логические операторы в запрос и наблюдая за изменениями в ответе приложения.

5. Проверка на внедрение XPath на основе ошибок:

Внедрение XPath на основе ошибок включает в себя внедрение кода, который вызывает ошибку в запросе. Этот тип уязвимости можно идентифицировать, наблюдая сообщения об ошибках или другое неожиданное поведение в ответе приложения.

6. Тест на внедрение XPath на основе времени:

Внедрение XPath на основе времени включает в себя внедрение кода, который заставляет приложение задерживать свой ответ. Этот тип уязвимости можно определить, наблюдая за задержками в ответе приложения.

7. Тест на слепую инъекцию XPath:

Слепая инъекция XPath происходит, когда приложение не предоставляет злоумышленнику никакой обратной связи относительно успеха или неудачи атаки. Этот тип уязвимости можно идентифицировать, наблюдая за изменениями в поведении приложения, такими как изменения во времени отклика.

8. Проверка на обход проверки входных данных:

В некоторых случаях приложение может проверять вводимые пользователем данные, но может неправильно обработать их перед передачей в запрос XPath. Этим можно воспользоваться, обойдя проверку и внедрив вредоносный код в запрос.

9. Проверка на повышение привилегий:

После выявления уязвимости, связанной с внедрением XPath, выполните проверку на повышение привилегий, попытавшись повысить привилегии и получить доступ к конфиденциальной информации или функциям.

10. Документируйте результаты и отчитывайтесь перед командой разработчиков:

Документируйте все результаты и сообщайте о них команде разработчиков, включая рекомендации по устранению уязвимостей. Обязательно предоставьте четкие и подробные описания уязвимостей, а также код подтверждения концепции и шаги по воспроизведению уязвимости.

Следуя этим методологиям и контрольным спискам, вы можете выявлять и использовать уязвимости внедрения XPath в веб-приложениях, помогая повысить их безопасность и предотвратить несанкционированный доступ злоумышленников.

Набор инструментов для использования внедрения XPath

Ручные инструменты:

  1. Burp Suite: Burp Suite - это популярный инструмент тестирования веб-приложений, который можно использовать для проверки уязвимостей, связанных с внедрением XPath. Он включает в себя прокси, сканер и различные другие инструменты для тестирования веб-приложений.

  2. Postman: Postman - это мощный инструмент для тестирования веб-API, и его можно использовать для ручного тестирования уязвимостей внедрения XPath в веб-приложениях.

  3. OWASP ZAP: OWASP ZAP - это бесплатный инструмент тестирования веб-приложений с открытым исходным кодом, который можно использовать для ручного тестирования уязвимостей XPath injection.

  4. Selenium IDE: Selenium IDE - это расширение для браузера, которое можно использовать для автоматизации тестирования веб-приложений, включая тестирование на уязвимости при внедрении XPath.

  5. Fiddler: Fiddler - это бесплатный прокси-сервер для веб-отладки, который можно использовать для ручной проверки уязвимостей XPath injection в веб-приложениях.

  6. Инструменты разработчика Chrome: Инструменты разработчика Chrome - это встроенная функция браузера Chrome, которую можно использовать для ручной проверки на наличие уязвимостей, связанных с внедрением XPath.

  7. Инструменты разработчика Firefox: Инструменты разработчика Firefox - это встроенная функция браузера Firefox, которую можно использовать для ручного тестирования уязвимостей XPath injection.

  8. Charles Proxy: Charles Proxy - это прокси для веб-отладки, который можно использовать для ручной проверки уязвимостей внедрения XPath в веб-приложениях.

Автоматизированные инструменты:

  1. sqlmap: sqlmap - это автоматизированный инструмент для тестирования уязвимостей, связанных с внедрением SQL, но его также можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  2. AppSpider: AppSpider - это автоматизированный инструмент тестирования веб-приложений, который можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  3. Netsparker: Netsparker - это автоматический сканер безопасности веб-приложений, который можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  4. Acunetix: Acunetix - это автоматизированный сканер безопасности веб-приложений, который можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  5. Arachni: Arachni - это сканер безопасности веб-приложений с открытым исходным кодом, который можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  6. Wapiti: Wapiti - это сканер безопасности веб-приложений с открытым исходным кодом, который можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  7. Vega: Vega - это платформа тестирования безопасности веб-приложений с открытым исходным кодом, которую можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  8. Nikto: Nikto - это сканер веб-сервера с открытым исходным кодом, который можно использовать для проверки уязвимостей при внедрении XPath.

  9. Grendel-Scan: Grendel-Scan - это сканер безопасности веб-приложений с открытым исходным кодом, который можно использовать для проверки уязвимостей, связанных с внедрением XPath.

  10. Skipfish: Skipfish - это сканер безопасности веб-приложений с открытым исходным кодом, который можно использовать для проверки уязвимостей, связанных с внедрением XPath.

Плагины для браузера и фреймворки тестирования:

  1. XPath Checker: XPath Checker - это плагин для браузера Firefox, который можно использовать для ручной проверки уязвимостей XPath injection.

  2. Selenium WebDriver: Selenium WebDriver - это платформа автоматизации браузера, которая может использоваться для автоматизации тестирования веб-приложений, включая тестирование на уязвимости при внедрении XPath.

Автоматизированные инструменты:

1. Nessus – Nessus - это широко используемый сканер уязвимостей, который может помочь выявить потенциальные неправильные настройки безопасности и уязвимости.

2. OpenVAS – OpenVAS - это сканер уязвимостей с открытым исходным кодом, который может выявлять потенциальные неправильные настройки безопасности и уязвимости в сети.

3. Nmap – Nmap - это инструмент сетевого сканирования, который может помочь идентифицировать открытые порты и службы в целевой системе.

4. Metasploit – Metasploit - это платформа тестирования на проникновение, которая может использоваться для выявления и использования неправильных настроек безопасности и уязвимостей.

5. Burp Suite – Burp Suite - это популярный инструмент тестирования безопасности веб-приложений, который можно использовать для выявления и использования неправильных настроек безопасности и уязвимостей.

6. OWASP ZAP – OWASP ZAP - это сканер безопасности веб-приложений, который может выявлять потенциальные неправильные настройки безопасности и уязвимости.

7. SQLMap – SQLMap - это автоматизированный инструмент внедрения SQL, который можно использовать для выявления и использования потенциальных неправильных настроек безопасности и уязвимостей в веб-приложениях.

8. Hydra – Hydra - это инструмент для взлома сетевых паролей, который может помочь идентифицировать слабые или стандартные пароли в сетевых службах.

Ручные Инструменты:

1. Telnet – Telnet - это сетевой протокол, который может использоваться для удаленного доступа к целевой системе и управления ею. Он может быть использован для выявления потенциальных неправильных настроек безопасности и уязвимостей.

2. Netcat – Netcat - это сетевой инструмент, который можно использовать для сканирования портов, удаленного доступа и других задач, связанных с сетью. Его можно использовать для выявления потенциальных неправильных настроек безопасности и уязвимостей.

3. Wireshark – Wireshark - это анализатор сетевых пакетов, который можно использовать для сбора и анализа сетевого трафика. Его можно использовать для выявления потенциальных неправильных настроек безопасности и уязвимостей.

4. Sqlmap – SQLMap - это автоматизированный инструмент внедрения SQL, который можно использовать для выявления и использования потенциальных неправильных настроек безопасности и уязвимостей в веб-приложениях.

5. Metasploit – Metasploit - это платформа тестирования на проникновение, которая может использоваться для выявления и использования неправильных настроек безопасности и уязвимостей.

6. PowerShell – PowerShell - это язык сценариев, который можно использовать для автоматизации задач и выполнения различных административных функций. Он может быть использован для выявления и использования потенциальных неправильных настроек безопасности и уязвимостей.

7. Инструменты командной строки Unix / Linux - Различные инструменты командной строки, такие как “grep”, “awk” и “sed”, могут использоваться для выявления потенциальных неправильных настроек безопасности и уязвимостей в системах Unix / Linux.

8. Средства командной строки Windows - Различные средства командной строки, такие как “netstat”, “tasklist” и “ipconfig”, могут использоваться для выявления потенциальных неправильных настроек безопасности и уязвимостей в системах Windows.

Плагины для браузера:

1. Firefox Security Toolkit – Firefox Security Toolkit представляет собой набор надстроек для браузера, которые можно использовать для повышения безопасности Firefox. Он включает в себя дополнения для сканирования уязвимостей, управления паролями и других задач, связанных с безопасностью.

2. Инструменты разработчика Chrome – Инструменты разработчика Chrome - это встроенный набор инструментов, которые можно использовать для отладки и устранения неполадок веб-приложений. Он может быть использован для выявления и использования потенциальных неправильных настроек безопасности и уязвимостей.

3. OWASP ZAP – OWASP ZAP - это сканер безопасности веб-приложений, который можно использовать в качестве плагина для браузера. Он может выявлять потенциальные неправильные настройки безопасности и уязвимости в веб-приложениях.

4. Acunetix – Acunetix - это сканер безопасности веб-приложений, который предлагает плагин для браузера для выявления потенциальных неправильных настроек безопасности и уязвимостей.

Тестовые фреймворки:

1. Руководство по тестированию OWASP – Руководство по тестированию OWASP представляет собой комплексную платформу тестирования, которая включает в себя множество инструментов и методов для выявления потенциальных неправильных настроек безопасности и уязвимостей.

2. MITRE ATT & CK – MITRE ATT & CK - это база знаний о тактиках и методах, используемых субъектами угроз. Он включает в себя различные методы выявления и использования неправильных настроек безопасности и уязвимостей.

3. NIST SP 800-115 – NIST SP 800-115 представляет собой руководство по тестированию и оценке информационной безопасности, которое включает в себя структуру для выявления потенциальных неправильных настроек безопасности и уязвимостей.

4. PTES – Стандарт выполнения тестирования на проникновение (PTES) представляет собой комплексную платформу тестирования, которая включает в себя множество инструментов и методов для выявления потенциальных неправильных настроек безопасности и уязвимостей.

5. OSSTMM – Руководство по методологии тестирования безопасности с открытым исходным кодом (OSSTMM) представляет собой платформу тестирования, которая включает в себя множество инструментов и методов для выявления потенциальных неправильных настроек безопасности и уязвимостей.

Средний балл CVSS Внедрение XPath

Общая система оценки уязвимостей (CVSS) представляет собой основу для оценки серьезности уязвимостей в системе безопасности. Он предоставляет стандартный способ измерения воздействия уязвимости на систему на основе различных факторов, таких как вероятность использования, потенциальный ущерб системе и требуемый уровень взаимодействия с пользователем.

Средняя оценка CVSS для уязвимости, связанной с внедрением XPath, может сильно различаться в зависимости от ряда факторов, включая сложность запроса XPath, объем данных, к которым злоумышленник может получить доступ или изменить их, и общее состояние безопасности приложения.

Однако в целом уязвимости, связанные с внедрением XPath, считаются уязвимостями высокой степени серьезности из-за их потенциального влияния на конфиденциальность, целостность и доступность приложения и его данных. Средняя оценка CVSS для уязвимостей, связанных с внедрением XPath, обычно находится в диапазоне от 7,0 до 9,0, что соответствует “высокой” или “критической” степени серьезности.

Общее перечисление слабых мест (CWE) для внедрения XPath

  1. CWE-89: Неправильная нейтрализация специальных элементов, используемых в команде SQL ("SQL-инъекция") Описание: Эта слабость относится к уязвимостям SQL Injection, которые похожи на уязвимости XPath Injection в том, что злоумышленник может внедрить вредоносный код в запрос. Слабость возникает, когда входные данные не обрабатываются или не проверяются должным образом, что позволяет злоумышленнику манипулировать SQL-запросом для выполнения произвольных команд в базе данных.

  2. CWE-91: внедрение XML (также известное как слепое внедрение XPath) Описание: Эта уязвимость относится к уязвимостям для внедрения XML, которые похожи на уязвимости для внедрения XPath в том смысле, что злоумышленник может внедрить вредоносный код в XML-документ. Уязвимость возникает, когда входные данные не обрабатываются или не проверяются должным образом, что позволяет злоумышленнику манипулировать XML-документом для выполнения произвольных команд на сервере.

  3. CWE-115: неправильная нейтрализация специальных элементов, используемых в выражении XPath (‘Внедрение XPath’) Описание: Эта слабость конкретно относится к уязвимостям внедрения XPath, когда ввод не обрабатывается или не проверяется должным образом, что позволяет злоумышленнику манипулировать запросом XPath для выполнения произвольных команд на сервере.

  4. CWE-639: Обход авторизации с помощью ключа, управляемого пользователем Описание: Эта слабость относится к ситуациям, когда злоумышленник может обойти элементы управления авторизацией, манипулируя данными, управляемыми пользователем, такими как токен сеанса или другой ключ аутентификации. В контексте внедрения XPath злоумышленник может иметь возможность обойти средства контроля доступа, манипулируя запросом XPath для извлечения или изменения несанкционированных данных.

  5. CWE-862: отсутствует описание авторизации. Эта уязвимость относится к ситуациям, когда приложению не удается должным образом обеспечить контроль авторизации, позволяя злоумышленнику получить доступ к данным или функциям, которые должны быть ограничены. В контексте внедрения XPath злоумышленник может иметь возможность обойти средства контроля доступа, манипулируя запросом XPath для извлечения или изменения несанкционированных данных.

  6. CWE-863: Неправильная авторизация Описание: Эта уязвимость относится к ситуациям, когда приложение ненадлежащим образом применяет средства управления авторизацией, позволяя злоумышленнику получить доступ к данным или функциям, которые должны быть ограничены. В контексте внедрения XPath злоумышленник может иметь возможность обойти средства контроля доступа, манипулируя запросом XPath для извлечения или изменения несанкционированных данных.

  7. CWE-937: OWASP Top Ten 2017 Категория A5 – Неработающий контроль доступа Описание: Эта слабость относится к ситуациям, когда приложение не может должным образом обеспечить контроль доступа, позволяя злоумышленнику получить доступ к данным или функциям, которые должны быть ограничены. В контексте внедрения XPath злоумышленник может иметь возможность обойти средства контроля доступа, манипулируя запросом XPath для извлечения или изменения несанкционированных данных.

  8. CWE-943: Неправильная нейтрализация специальных элементов в логике запроса данных Описание: Эта слабость относится к ситуациям, когда входные данные не обрабатываются или не проверяются должным образом перед использованием в логике запроса данных, что позволяет злоумышленнику манипулировать запросом для выполнения произвольных команд на сервере. В контексте внедрения XPath злоумышленник может иметь возможность манипулировать запросом XPath для извлечения или изменения несанкционированных данных.

  9. CWE-1168: Неправильное описание контроля доступа. Эта слабость относится к ситуациям, когда приложению не удается должным образом обеспечить контроль доступа, позволяя злоумышленнику получить доступ к данным или функциям, которые должны быть ограничены. В контексте внедрения XPath злоумышленник может иметь возможность обойти средства контроля доступа, манипулируя запросом XPath для извлечения или изменения несанкционированных данных.

  10. CWE-1177: Использование строки формата, контролируемой извне Описание: Эта слабость относится к ситуациям, когда приложение использует строку формата, контролируемую извне, для генерации выходных данных, позволяя злоумышленнику выполнять произвольные команды на сервере. В контексте внедрения XPath злоумышленник может иметь возможность манипулировать строкой формата, используемой в запросе XPath, для выполнения произвольных команд на сервере.

  11. CWE-119: Неправильное ограничение операций в пределах буфера памяти Описание: Эта слабость относится к ситуациям, когда приложению не удается должным образом проверить или очистить ввод, позволяя злоумышленнику перезаписать память за пределы буфера. В контексте внедрения XPath злоумышленник может ввести вредоносную входную строку, которая вызывает переполнение буфера, потенциально позволяя им выполнять произвольный код на сервере.

  12. CWE-134: Использование строки формата, контролируемой извне Описание: Эта слабость относится к ситуациям, когда приложение использует строку формата, контролируемую извне, для генерации выходных данных, позволяя злоумышленнику выполнять произвольные команды на сервере. В контексте внедрения XPath злоумышленник может иметь возможность манипулировать строкой формата, используемой в запросе XPath, для выполнения произвольных команд на сервере.

  13. CWE-209: Генерация сообщения об ошибке, содержащего конфиденциальную информацию Описание: Эта слабость относится к ситуациям, когда приложение генерирует сообщение об ошибке, содержащее конфиденциальную информацию, такую как трассировка стека или строка подключения к базе данных. В контексте внедрения XPath злоумышленник может ввести вредоносную строку ввода, которая вызывает генерирование сообщения об ошибке, потенциально раскрывающего конфиденциальную информацию.

  14. CWE-212: Неправильное трансграничное удаление конфиденциальных данных Описание: Эта слабость относится к ситуациям, когда приложению не удается должным образом удалить или очистить конфиденциальные данные перед их передачей между различными доменами безопасности, например, между клиентом и сервером. В контексте внедрения XPath злоумышленник может внедрить вредоносную строку ввода, которая приводит к передаче конфиденциальных данных между различными доменами безопасности, потенциально позволяя злоумышленнику получить доступ к несанкционированным данным или изменить их.

  15. CWE-306: Отсутствует аутентификация для критической функции Описание: Эта слабость относится к ситуациям, когда приложению не удается запросить аутентификацию, прежде чем разрешить выполнение критической функции, такой как изменение или удаление данных. В контексте внедрения XPath злоумышленник может иметь возможность обойти элементы управления аутентификацией, манипулируя запросом XPath для извлечения или изменения несанкционированных данных.

  16. CWE-327: Использование неработающего или опасного криптографического алгоритма Описание: Эта слабость относится к ситуациям, когда приложение использует криптографический алгоритм, который, как известно, является слабым или уязвимым для атаки. В контексте внедрения XPath злоумышленник может иметь возможность манипулировать криптографическим алгоритмом, используемым в запросе XPath, для выполнения произвольных команд на сервере.

  17. CWE-434: неограниченная загрузка файла с опасным типом Описание: Эта слабость относится к ситуациям, когда приложение позволяет пользователю загружать файл с опасным или неожиданным типом файла, например исполняемый файл. В контексте внедрения XPath злоумышленник может загрузить вредоносный файл, который затем выполняется сервером, что потенциально позволяет ему выполнять произвольный код на сервере.

  18. CWE-522: Недостаточно защищенные учетные данные Описание: Эта слабость относится к ситуациям, когда приложению не удается должным образом защитить учетные данные пользователя, такие как пароли или токены сеанса. В контексте внедрения XPath злоумышленник может иметь возможность манипулировать запросом XPath для получения или изменения учетных данных пользователя, что потенциально позволяет им получить несанкционированный доступ к системе.

  19. CWE-526: Раскрытие информации через переменные среды Описание: Эта слабость относится к ситуациям, когда приложение предоставляет конфиденциальную информацию через переменные среды, такие как журналы сервера или сообщения об ошибках. В контексте внедрения XPath злоумышленник может ввести вредоносную строку ввода, которая вызывает генерирование сообщения об ошибке, потенциально раскрывающего конфиденциальную информацию.

  20. CWE-613: Недостаточное истечение срока действия сеанса Описание: Эта слабость относится к ситуациям, когда приложению не удается должным образом завершить пользовательские сеансы, что потенциально позволяет злоумышленнику использовать украденный токен сеанса для получения несанкционированного доступа к системе. В контексте внедрения XPath злоумышленник может ввести вредоносную строку ввода, которая приводит к краже или компрометации токена сеанса.

Последние 10 CVE, связанные с внедрением XPath

CVE-2022-46464 – Было обнаружено, что ConcreteCMS v9.1.3 уязвима для атак с использованием Xpath. Эта уязвимость позволяет злоумышленникам получить доступ к конфиденциальным XML-данным с помощью созданной полезной нагрузки, введенной в папку URL path “3”.

CVE-2022-22244 – Уязвимость внедрения XPath в компоненте J-Web Juniper Networks Junos OS позволяет злоумышленнику, не прошедшему проверку подлинности, отправляющему обработанное сообщение, достичь канала XPath, что может привести к подключению к другим неуказанным уязвимостям, что приводит к частичной потере конфиденциальности. Эта проблема затрагивает Juniper Networks ОС Junos: все версии до 19.1R3-S9; 19.2 версии до 19.2R3-S6; 19.3 версии до 19.3R3-S7; 19.4 версии до 19.4R3-S9; 20.1 версии до 20.1R3-S5; 20.2 версии до 20.2R3-S5; 20.3 версии до 20.3R3-S5; 20.4 версии до 20.4R3-S4; 21.1 версии до 21.1R3-S3; 21.2 версии до 21.2R3-S1; 21.3 версии до 21.3R3; 21.4 версии до 21.4R1-S2, 21.4R2; 22.1 версии до 22.1R1-S1, 22.1R2.

CVE-2022-22243 – Уязвимость внедрения XPath из-за неправильной проверки ввода в компоненте J-Web Juniper Networks Junos OS позволяет злоумышленнику, прошедшему проверку подлинности, добавить команду XPath в поток XPath, что может привести к подключению к другим неуказанным уязвимостям, что приведет к частичной потере конфиденциальности. Эта проблема затрагивает Juniper Networks ОС Junos: все версии до 19.1R3-S9; 19.2 версии до 19.2R3-S6; 19.3 версии до 19.3R3-S7; 19.4 версии до 19.4R2-S7, 19.4R3-S8; 20.1 версии до 20.1R3-S5; 20.2 версии до 20.2R3-S5; 20.3 версии до 20.3R3-S5; 20.4 версии до 20.4R3-S4; 21.1 версии до 21.1R3-S2; 21.2 версии до 21.2R3-S1; 21.3 версии до 21.3R2-S2, 21.3R3; 21.4 версии до 21.4R1-S2, 21.4R2-S1, 21.4R3; 22.1 версии, предшествующие 22.1R1-S1, 22.1R2.

CVE-2021-43822 – Jackalope Doctrine-DBAL - это реализация PHP Content Repository API (PHPCR), использующая реляционную базу данных для сохранения данных. В затронутых версиях пользователи могут спровоцировать SQL-инъекции, если они могут указать имя узла или запрос. Обновитесь до версии 1.7.4, чтобы устранить эту проблему. Если это невозможно, вы можете экранировать все места, где `$property` используется для фильтрации `sv:name` в классе `Jackalope \ Transport \ DoctrineDBAL \Query \ QOMWalker`: `XPath::escape($property)`. Имена узлов и xpaths могут содержать `”` или `;` в соответствии со спецификацией JCR. Компонент jackalope, который преобразует объектную модель запроса в запросы doctrine dbal, неправильно экранирует имена и пути, так что соответствующим образом созданное имя узла может привести к SQL-инъекции. Если запросы никогда не выполняются с помощью пользовательского ввода или если вы проверяете, что пользовательский ввод не содержит `;`, вы не пострадаете.

CVE-2020-25162 – Уязвимость внедрения XPath в B. Braun Melsungen AG SpaceCom версии L81/U61 и более ранних версий, а также модуль данных compactplus версий A10 и A11 позволяет злоумышленникам, не прошедшим проверку подлинности, получать доступ к конфиденциальной информации и повышать привилегии.

CVE-2019-8158 – Уязвимость для внедрения сущности XPath существует в Magento 2.2 до версии 2.2.10, Magento 2.3 до версии 2.3.3 или 2.3.2-p1. Злоумышленник может создать запрос GET к модулю визуализации блоков кэша страниц, который передается в механизм обработки XML-данных без проверки. Обработанные данные запроса получения ключа / значения позволяют злоумышленнику ограничить доступ к базовым XML-данным.

CVE-2019-0370 – Из-за отсутствия проверки входных данных SAP Financial Consolidation до версий 10.0 и 10.1 позволяет злоумышленнику использовать обработанные входные данные для вмешательства в структуру окружающего запроса, что приводит к внедрению XPath.

CVE-2016-9149 – Анализатор объектов адресов в Palo Alto Networks PAN-OS до 5.0.20, 5.1.x до 5.1.13, 6.0.x до 6.0.15, 6.1.x до 6.1.15, 7.0.x до 7.0.11 и 7.1.x до 7.1.6 неправильно обрабатывает символы одинарных кавычек, что позволяет удаленным пользователям, прошедшим проверку подлинности, проводить атаки с использованием XPath с помощью созданной строки.

CVE-2016-6272 – Уязвимость внедрения XPath в Epic MyChart позволяет удаленным злоумышленникам получать доступ к содержимому XML-документа, содержащего строки статического отображения, такие как метки полей, через параметр темы в help.asp. ПРИМЕЧАНИЕ: первоначально сообщалось, что это уязвимость SQL-инъекции, но это может быть неточно.

CVE-2015-6011 – База веб-ссылок (она же refbase) до версии 0.9.6 и до 2015-01-08 позволяет удаленным злоумышленникам проводить атаки с использованием XML-инъекций с помощью (1) параметра id для unapi.php или (2) параметр таблицы стилей для sru.php .

Список CVE постоянно обновляется и дополняется актуальный список всех существующих распространенных уязвимостей и уязвимостей (CVE) для уязвимостей, связанных с контрабандой HTTP-запросов, можно найти на официальном веб-сайте CVE https://cve.mitre.org/

Список популярных эксплойтов, связанных с внедрением XPath

Уязвимости, связанные с внедрением XPath, могут привести к широкому спектру эксплойтов, некоторые из которых более распространены, чем другие.

Вот список популярных эксплойтов, связанных с инъекциями XPath.

  1. Извлечение данных: уязвимости, связанные с внедрением XPath, могут позволить злоумышленнику извлечь конфиденциальные данные из уязвимого приложения. Внедряя вредоносные запросы XPath, злоумышленник может получить данные, к которым у него не должно быть доступа. Это может включать такую информацию, как имена пользователей, пароли, номера кредитных карт и другую конфиденциальную информацию.

  2. Обход аутентификации: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику обойти механизмы аутентификации, предоставляя им доступ к конфиденциальным областям приложения. Создавая вредоносный запрос XPath, который обходит проверки входа, злоумышленник может получить доступ к защищенным ресурсам без надлежащих учетных данных.

  3. Выполнение команды: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику выполнять произвольные команды на сервере. Создав вредоносный запрос XPath, содержащий команды, злоумышленник может выполнить код на сервере и потенциально получить контроль над системой.

  4. Отказ в обслуживании: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику запустить атаку типа "отказ в обслуживании" против уязвимого приложения. Создавая вредоносный запрос XPath, который приводит к чрезмерному потреблению приложением ресурсов, злоумышленник может привести к сбою приложения или его отказу отвечать на запросы.

  5. Удаленное выполнение кода: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику выполнить произвольный код на сервере, что потенциально может привести к полному удаленному выполнению кода. Создав вредоносный запрос XPath, содержащий код, злоумышленник может получить полный контроль над сервером и всеми его ресурсами.

  6. Повышение привилегий: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику повысить свои привилегии в приложении. Создавая вредоносный запрос XPath, который манипулирует средствами управления доступом или другими механизмами безопасности, злоумышленник может получить повышенные привилегии и получить доступ к конфиденциальным ресурсам.

  7. Доступ к базе данных: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику получить доступ к базовой базе данных приложения. Создавая вредоносный запрос XPath, который извлекает данные из базы данных, злоумышленник может получить доступ к конфиденциальной информации, которая там хранится.

  8. Межсайтовый скриптинг: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику внедрить вредоносный код в приложение, что потенциально может привести к атакам с использованием межсайтового скриптинга. Создавая вредоносный запрос XPath, содержащий теги скрипта, злоумышленник может внедрить код, который выполняется в контексте других пользователей, что может привести к краже учетных данных или другой конфиденциальной информации.

  9. Подделка межсайтовых запросов: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику запускать атаки с подделкой межсайтовых запросов против приложения. Создавая вредоносный запрос XPath, который включает запросы к другим сайтам, злоумышленник может обманом заставить пользователей невольно выполнять действия, которые они не намеревались, что может привести к несанкционированному доступу или другим вредоносным действиям.

  10. Загрузка / выгрузка файлов: уязвимость, связанная с внедрением XPath, может позволить злоумышленнику загружать или скачивать файлы из уязвимого приложения. Создавая вредоносный запрос XPath, который включает запросы на загрузку или скачивание файлов, злоумышленник может получить доступ к конфиденциальной информации или загрузить вредоносный код, который может быть выполнен на сервере.

Практикуйтесь в выявлении и использовании внедрения XPath

  1. Прочитайте о XPath и о том, как он работает: Прежде чем углубляться в внедрение XPath, важно хорошо понимать, что такое XPath и как он работает. Это поможет вам лучше понять уязвимости и способы их использования.

  2. Изучите распространенные векторы атак с использованием XPath: После того, как вы хорошо разберетесь в XPath, вы можете приступить к изучению распространенных векторов атак с использованием XPath. Это поможет вам выявить уязвимости в приложениях и разработать эффективные методы эксплуатации.

  3. Используйте инструменты тестирования: Существует ряд инструментов тестирования, которые могут помочь вам выявить и использовать уязвимости, связанные с внедрением XPath. Некоторые популярные инструменты включают Burp Suite, OWASP ZAP и SQLMap. Эти инструменты помогут вам автоматизировать процесс тестирования и быстрее выявить уязвимости.

  4. Практика на уязвимых приложениях: Существует ряд доступных уязвимых приложений, которые разработаны специально для практики внедрения XPath. Эти приложения могут помочь вам развить свои навыки и получить практический опыт работы с методами эксплуатации.

  5. Читайте о реальных эксплойтах: чтение о реальных эксплойтах может помочь вам понять, как злоумышленники успешно использовали уязвимости, связанные с внедрением XPath, в прошлом. Это может дать ценную информацию о том, как выявить и смягчить эти уязвимости.

  6. Посещайте учебные или сертификационные курсы: Существует ряд учебных и сертификационных курсов, посвященных внедрению XPath и другим темам безопасности веб-приложений. Эти курсы могут дать вам более глубокие знания и навыки, которые помогут вам стать более эффективным специалистом в области безопасности.

Ключом к освоению внедрения XPath является практика и настойчивость. Изучая технологию, развивая свои навыки и применяя свои знания на практике, вы можете стать экспертом в выявлении и использовании уязвимостей, связанных с внедрением XPath.

Книги с обзором внедрения XPath

Вот несколько популярных книг по внедрению XPath, которые могут оказаться полезными:

  1. “Безопасность веб–приложений: руководство для начинающих” Брайана Салливана и Винсента Лью - в этой книге рассматриваются основы безопасности веб-приложений, включая уязвимости, связанные с внедрением XPath, и способы их предотвращения. Это хорошая отправная точка для начинающих.

  2. “The Web Application Hacker's Handbook: поиск и использование уязвимостей безопасности” Дафидда Штуттарда и Маркуса Пинто – Эта книга представляет собой всеобъемлющее руководство по безопасности веб-приложений и охватывает ряд уязвимостей, включая внедрение XPath. Это популярный справочник для специалистов в области безопасности.

  3. “Взломанные веб-приложения: Секреты и решения безопасности веб–приложений” Джоэла Скамбрея, Майка Шемы и Калеба Сима - Эта книга охватывает широкий спектр уязвимостей веб-приложений, включая внедрение XPath, и содержит практические рекомендации по их выявлению и использованию.

  4. “Запутанная паутина: руководство по обеспечению безопасности современных веб–приложений” Михала Залевски - Эта книга охватывает ряд уязвимостей веб-приложений, включая внедрение XPath, и предоставляет подробные технические сведения о том, как работают эти уязвимости.

  5. “Освоение современного тестирования на проникновение в Интернет” Прахара Прасада – Эта книга посвящена современной безопасности веб-приложений, включая внедрение XPath, и содержит практические рекомендации по выявлению и использованию уязвимостей. Она также охватывает передовые методы эксплуатации.

Все эти книги высоко ценятся в сообществе по безопасности веб-приложений и могут предоставить ценную информацию и рекомендации для тех, кто хочет узнать о внедрении XPath и других уязвимостях веб-приложений.

Список полезных нагрузок для внедрения XPath

Вот некоторые распространенные полезные нагрузки для внедрения XPath:

  1. Одинарная кавычка (‘) – это наиболее распространенная полезная нагрузка для тестирования на внедрение XPath. Он используется для проверки того, является ли приложение уязвимым для базовой SQL-инъекции.

  2. Двойные кавычки (“) – это еще одна распространенная полезная нагрузка, используемая для проверки на внедрение XPath. Он используется для проверки того, является ли приложение уязвимым для двойных кавычек в выражениях XPath.

  3. Полезные нагрузки на основе логических значений - эти полезные нагрузки используются для проверки того, является ли приложение уязвимым для внедрения на основе логических значений. Примеры включают ‘или 1 = 1’ или ‘и 1 = 2’.

  4. Полезные нагрузки на основе ошибок - эти полезные нагрузки используются для проверки того, является ли приложение уязвимым для внедрения на основе ошибок. Примеры включают ‘деление на ноль’ или ‘недопустимое число’.

  5. Полезные нагрузки на основе объединения - эти полезные нагрузки используются для проверки уязвимости приложения к внедрению на основе объединения. Примеры включают ‘объединить все выбранные 1,2,3’ или ‘упорядочить по 1’.

  6. Внеполосные полезные нагрузки – эти полезные нагрузки используются для проверки уязвимости приложения к внеполосному внедрению. Примеры включают отправку данных на внешний сервер с использованием функции "документ" или URL-адреса "данные:".

  7. Полезные нагрузки функции XPath – эти полезные нагрузки используются для проверки уязвимости приложения к внедрению функции XPath. Примеры включают использование функции ‘concat()’ или функции ‘substring()’.

  8. Полезные нагрузки XML – эти полезные нагрузки используются для проверки того, является ли приложение уязвимым для внедрения XML. Примеры включают внедрение XML-элемента или атрибута.

Это всего лишь несколько примеров множества различных полезных нагрузок, которые можно использовать для тестирования уязвимостей, связанных с внедрением XPath. Важно настроить полезную нагрузку в зависимости от конкретного контекста и тестируемого приложения.

Смягчение последствий и способы защиты от внедрения XPath

Методы смягчения последствий, которые могут быть использованы для защиты от уязвимостей, связанных с внедрением XPath:

  1. Проверка и очистка входных данных – убедитесь, что все введенные пользователем данные должным образом проверены и очищены, прежде чем они будут использоваться в выражениях XPath. Это может включать в себя такие методы, как проверка длины ввода, проверка типа ввода и проверка формата ввода.

  2. Параметризованные запросы – используйте параметризованные запросы при построении выражений XPath для предотвращения атак с использованием инъекций. Это включает в себя использование заполнителей для пользовательского ввода, а затем привязку входных данных к заполнителям при выполнении запроса.

  3. Наименьшие привилегии – убедитесь, что выражения XPath, используемые в приложении, имеют наименьшие возможные привилегии. Это может помочь ограничить воздействие любых потенциальных инъекционных атак.

  4. Обработка ошибок – внедрите надлежащую обработку ошибок, чтобы предотвратить возврат злоумышленникам подробных сообщений об ошибках. Эти сообщения могут содержать ценную информацию, которая может быть использована для запуска дальнейших атак.

  5. Брандмауэр веб–приложений (WAF) - реализация WAF для обеспечения дополнительного уровня защиты от атак с использованием XPath. WAF могут помочь обнаруживать и блокировать известные схемы атак.

  6. Регулярное тестирование безопасности – регулярно проводите тестирование безопасности ваших приложений для выявления и устранения любых потенциальных уязвимостей, включая внедрение XPath.

Внедряя эти методы смягчения последствий, организации могут значительно снизить риск атак с использованием XPath. Важно убедиться, что эти методы реализованы должным образом и поддерживаются в актуальном состоянии по мере обнаружения новых уязвимостей.

Заключение

Внедрение XPath - это уязвимость веб-приложения, которая может позволить злоумышленникам выполнять произвольный код и получать несанкционированный доступ к конфиденциальной информации. Это может быть вызвано неправильной проверкой и очисткой входных данных и может быть устранено с помощью различных мер, таких как проверка входных данных, параметризованные запросы и минимальные привилегии. Чтобы оставаться в безопасности, организации должны проявлять бдительность в своих усилиях по обеспечению безопасности и быть в курсе новейших методов и инструментов, используемых для тестирования и использования уязвимостей, связанных с внедрением XPath.

Другие Услуги

Готовы к безопасности?

Связаться с нами