Внедрение XML-кода

Vulnerability Assessment as a Service (VAaaS)
Tests systems and applications for vulnerabilities to address weaknesses.

Внедрение XML-кода это тип уязвимости веб-приложения, возникающий, когда злоумышленник может внедрить вредоносный код в поле ввода или параметр XML. Злоумышленник может использовать эту уязвимость для манипулирования XML-данными, обрабатываемыми приложением, что потенциально может привести к выполнению непреднамеренных команд, раскрытию конфиденциальных данных или выполнению несанкционированных действий. Вектор атаки может быть направлен через специально созданный XML-ввод, содержащий вредоносные теги, сущности или комментарии, которые могут привести к выполнению кода или утечке данных. Разработчикам веб-приложений важно знать об этой уязвимости и предпринимать шаги по ее предотвращению, например, путем очистки пользовательского ввода, проверки входных данных и использования параметризованных запросов.
Пример уязвимого кода на разных языках программирования:
• в PHP:
$xml_data = $_POST['xml_data'];
$xml_parser = xml_parser_create();
xml_parse($xml_parser, $xml_data);
В этом коде $_POST['xml_data'] $_POST['xml_data'] переменная передается непосредственно в xml_parse() функционируйте без какой-либо проверки или дезинфекции. Это делает код уязвимым для атак с использованием XML-инъекций.
• в Java:
String xmlData = request.getParameter("xml_data");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(new StringReader(xmlData)));
В этом коде request.getParameter("xml_data") метод используется для извлечения XML-данных из запроса, которыми может манипулировать злоумышленник. Это делает код уязвимым для атак с использованием XML-инъекций.
• в C#:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(Request["xml_data"]);
В этом коде Запрос["xml_data"] метод используется для извлечения XML-данных из запроса, которыми может манипулировать злоумышленник. Это делает код уязвимым для атак с использованием XML-инъекций.
Примеры использования XML-инъекции
• Считывание конфиденциальной информации:
Злоумышленник может внедрить вредоносную полезную нагрузку XML, которая использует уязвимость для считывания конфиденциальной информации из приложения или базы данных. Например, злоумышленник может ввести полезную нагрузку XML, которая извлекает все данные учетной записи пользователя, включая имена пользователей и пароли.
• Изменение данных:
Злоумышленник может внедрить вредоносную полезную нагрузку XML, которая использует уязвимость для изменения данных в приложении или базе данных. Например, злоумышленник может ввести полезную нагрузку XML, которая изменяет цену продукта до очень низкого значения.
• Отказ в обслуживании:
Злоумышленник может внедрить вредоносную полезную нагрузку XML, которая использует уязвимость для запуска атаки типа "отказ в обслуживании" (DoS). Например, злоумышленник может внедрить полезную нагрузку XML, которая создает бесконечный цикл, заставляя приложение потреблять чрезмерные ресурсы и в конечном итоге аварийно завершать работу.
• Удаленное выполнение кода:
Злоумышленник может внедрить вредоносную полезную нагрузку XML, которая использует уязвимость для выполнения произвольного кода на сервере. Например, злоумышленник может ввести полезную нагрузку XML, которая выполняет команду на сервере, позволяя злоумышленнику получить контроль над сервером.
Методы повышения привилегий для внедрения XML
Внедрение полезной нагрузки XML, которая использует уязвимость в приложении или сервере, позволяя злоумышленнику получить доступ к операционной системе или другим конфиденциальным ресурсам.
Изменение XML-данных таким образом, чтобы злоумышленник мог обойти контроль доступа и получить доступ к конфиденциальной информации или выполнять действия, на выполнение которых он не уполномочен.
Внедрение полезной нагрузки XML, которая позволяет злоумышленнику выполнять произвольный код на сервере, который затем может быть использован для повышения привилегий или получения доступа к конфиденциальным ресурсам.
Использование внедрения XML для управления поведением приложения таким образом, чтобы злоумышленник мог получить контроль над системой или повысить привилегии. Например, злоумышленник может ввести полезную нагрузку XML, которая позволяет ему выполнять административные команды или обходить проверки подлинности.
Использование XML-инъекции для создания новой учетной записи пользователя с правами администратора, предоставляющей злоумышленнику полный контроль над системой.
Общая методология и контрольный список для внедрения XML
Методология:
Понять применение: Получите глубокое представление о приложении и его функциональности. Это может включать в себя определение полей ввода, источников данных и форматов вывода данных.
Определение полей ввода: Определите все поля ввода, которые принимают XML-данные или XML-подобные данные, включая поля поиска, поля загрузки файлов и другие формы, которые принимают пользовательский ввод.
Создание плана тестирования: Create a test plan that outlines the steps you will take to test for XML Injection vulnerabilities. This can include a list of test cases and payloads to be used during testing.
Тестовые полезные нагрузки: Вводите тестовые полезные нагрузки в каждое поле ввода, чтобы определить, является ли приложение уязвимым для внедрения XML. Тестовые полезные нагрузки должны включать различные полезные нагрузки XML, в том числе с искаженными данными, вредоносными сценариями и тегами, которые могут использовать известные уязвимости в приложении.
Проверка результатов: Проверьте результаты тестовых полезных нагрузок, чтобы определить, является ли приложение уязвимым для внедрения XML. Это может включать в себя просмотр ответа сервера, проверку журналов приложения на наличие сообщений об ошибках и проверку выходных данных приложения, чтобы убедиться, что они правильно отформатированы и не содержат каких-либо неожиданных данных.
Проверка на загрязнение параметров HTTP: Проверьте загрязнение параметров HTTP, отправив несколько параметров с одинаковым именем, каждый из которых содержит разные XML-данные. Это может помочь выявить уязвимости, при которых приложение не может различать различные поля ввода XML, что приводит к неожиданному поведению или эксплуатации.
Проверка на наличие уязвимостей при включении файлов: Проверьте наличие уязвимостей при включении файлов, введя полезные нагрузки XML, которые включают ссылки на внешние файлы, такие как файлы DTD или другие ресурсы. Это может помочь выявить уязвимости, которые позволяют злоумышленнику читать или записывать файлы на сервере.
Тест на атаки XXE: Проверка на наличие атак XML External Entity (XXE), которые могут использоваться для чтения файлов на сервере, извлечения конфиденциальных данных или выполнения произвольного кода. Это можно сделать путем внедрения вредоносных полезных нагрузок, содержащих внешние объекты, а затем проверки результатов, чтобы определить, была ли атака успешной.
Тест на уязвимости SOAP: Если приложение использует веб-службы на основе SOAP, проверьте их на наличие уязвимостей, которые позволяют злоумышленнику внедрить вредоносный код в сообщение SOAP или изменить его содержимое.
Результаты документирования: Документируйте все уязвимости или потенциальные уязвимости, которые были обнаружены во время тестирования, включая описание уязвимости, ее серьезность и любые рекомендуемые шаги по исправлению.
Контрольный список:
Определите все поля ввода, которые принимают XML-данные или XML-подобные данные.
Проверьте проверку входных данных, вводя полезные данные с искаженным XML, недопустимыми символами или ошибками кодирования.
Проверьте загрязнение параметров HTTP, введя несколько параметров с одинаковым именем, каждый из которых содержит разные XML-данные.
Проверьте наличие уязвимостей при включении файлов, введя полезные нагрузки XML, которые включают ссылки на внешние файлы, такие как файлы DTD или другие ресурсы.
Проверьте наличие атак XML External Entity (XXE) путем внедрения полезных нагрузок, содержащих внешние объекты, и проверки результатов, чтобы определить, была ли атака успешной.
Проверьте уязвимости SOAP, введя полезные данные в сообщения SOAP и проверив результаты, чтобы определить, была ли атака успешной.
Проверьте наличие уязвимостей путем внедрения полезных нагрузок, содержащих SQL, XPath или другие языки запросов, и проверки результатов, чтобы определить, была ли атака успешной.
Проверка на наличие уязвимостей типа "отказ в обслуживании" путем внедрения полезных нагрузок, предназначенных для потребления больших объемов системных ресурсов, таких как рекурсивные или глубоко вложенные полезные нагрузки XML.
Проверьте фильтрацию и очистку входных данных, внедрив полезные нагрузки, содержащие HTML-теги, код JavaScript или другой вредоносный код, и проверив результаты, чтобы определить, была ли атака успешной.
Проверьте сообщения об ошибках и журналы приложений на предмет информации, которая может быть использована для создания атак с использованием XML-инъекций.
Убедитесь, что приложение не включает конфиденциальную информацию в свои выходные данные XML, такие как имена пользователей, пароли или другие личные данные.
Убедитесь, что приложение не позволяет пользователям загружать или скачивать XML-файлы без соответствующей фильтрации и проверки.
Набор инструментов для эксплуатации Внедрение XML-кода
Автоматизированные инструменты:
Burp Suite – комплексный инструмент тестирования безопасности веб-приложений, который включает в себя функции для тестирования внедрения XML. Это позволяет перехватывать и изменять XML-запросы и ответы для поиска уязвимостей.
OWASP ZAP – инструмент тестирования безопасности веб-приложений с открытым исходным кодом, который включает в себя набор инструментов для поиска уязвимостей при внедрении XML. Он предоставляет прокси-сервер, сканер и другие функции для тестирования веб-приложений.
SOAPUI – инструмент тестирования, специально разработанный для тестирования веб-сервисов, в том числе тех, которые используют XML. Он позволяет отправлять и получать XML-запросы и ответы, а также манипулировать ими для проверки на наличие уязвимостей.
SoapSonar – инструмент тестирования, специально разработанный для тестирования веб-сервисов на основе SOAP. Он включает в себя функции для тестирования XML-сообщений и обнаружения уязвимостей.
W3af – инструмент тестирования безопасности веб-приложений с открытым исходным кодом, который включает функции для обнаружения уязвимостей при внедрении XML. Он может использоваться как для ручного, так и для автоматического тестирования.
SoapUI Pro – коммерческая версия SoapUI, которая включает дополнительные функции для тестирования веб-сервисов, в том числе тех, которые используют XML. Он обеспечивает интуитивно понятный пользовательский интерфейс и поддержку расширенных сценариев.
IBM AppScan – инструмент тестирования безопасности веб-приложений, который включает в себя функции для тестирования уязвимостей при внедрении XML. Он может использоваться как для ручного, так и для автоматического тестирования.
Netsparker – инструмент тестирования безопасности веб-приложений, который включает в себя функции для обнаружения уязвимостей при внедрении XML. Он может использоваться как для ручного, так и для автоматического тестирования.
Acunetix – инструмент тестирования безопасности веб-приложений, который включает в себя функции для обнаружения уязвимостей при внедрении XML. Он может использоваться как для ручного, так и для автоматического тестирования.
HP WebInspect – инструмент тестирования безопасности веб-приложений, который включает в себя функции для тестирования уязвимостей при внедрении XML. Он может использоваться как для ручного, так и для автоматического тестирования.
SQLMap – инструмент с открытым исходным кодом, специально разработанный для обнаружения уязвимостей SQL-инъекций. Он также включает в себя функции для обнаружения уязвимостей при внедрении XML.
XML External Entity (XXE) Injection Tool – a free online tool for detecting and testing XML External Entity injection vulnerabilities.
BeEF – платформа для работы с браузером, которая может использоваться для тестирования на различные типы уязвимостей, включая внедрение XML.
Ручные Инструменты:
XMLSpy – редактор XML, который включает в себя множество функций для тестирования и отладки XML. Его можно использовать для ручной проверки на наличие уязвимостей при внедрении XML.
XML Hammer – инструмент с открытым исходным кодом для тестирования и проверки XML-документов. Он включает в себя функции для тестирования уязвимостей при внедрении XML.
XML Copy Editor – редактор XML с открытым исходным кодом, который включает в себя функции для тестирования и отладки XML. Его можно использовать для ручного тестирования на наличие уязвимостей при внедрении XML.
Fiddler – прокси-инструмент веб-отладки, который позволяет перехватывать и изменять веб-трафик. Он включает в себя функции для тестирования уязвимостей при внедрении XML.
XML Entity Expander – a free online tool that allows you to expand and display the entities in an XML document. It can be used for manual testing for XML injection vulnerabilities.
Xmlio – инструмент с открытым исходным кодом для тестирования и проверки XML-документов. Он включает в себя функции для тестирования уязвимостей при внедрении XML.
Firefox add-ons – существуют различные дополнения Firefox, которые можно использовать для тестирования внедрения XML, такие как XML Developer Toolbar и XPath Checker.
Средний балл CVSS Внедрение стекового XML-кода
Общая система оценки уязвимостей (CVSS) - это стандартная система, используемая для присвоения числовой оценки серьезности уязвимостей системы безопасности. Оценка колеблется от 0 до 10, причем 10 баллов являются самыми серьезными.
Оценка CVSS для уязвимости при внедрении XML будет зависеть от различных факторов, таких как конкретная используемая уязвимость, вектор атаки и воздействие на систему или данные. Таким образом, трудно получить среднюю оценку CVSS для внедрения stack XML, не зная более конкретных деталей.
Однако в целом уязвимости, связанные с внедрением XML, могут привести к серьезным проблемам безопасности, включая кражу данных, повышение привилегий и атаки типа "отказ в обслуживании". Эти типы уязвимостей часто могут приводить к высокому баллу CVSS, обычно в диапазоне от 7 до 10, что указывает на серьезную уязвимость.
Общее перечисление слабых мест (CWE)
• CWE-91: внедрение XML – этот CWE возникает, когда ненадежный ввод обрабатывается как XML и ввод не очищается должным образом. Злоумышленники могут использовать эту уязвимость для внедрения вредоносного контента в XML-документ, что может привести к повреждению или раскрытию конфиденциальной информации.
• CWE-611: неправильное ограничение ссылки на внешние объекты XML (XXE) – это CWE возникает, когда приложение позволяет объектам XML ссылаться на внешние ресурсы, такие как файлы или веб-службы, без надлежащей проверки или ограничений. Злоумышленники могут использовать эту уязвимость для извлечения конфиденциальных данных или выполнения вредоносного кода.
• CWE-643: неправильная нейтрализация данных в выражениях XPath – этот CWE возникает, когда приложение использует выражения XPath для обработки XML-данных без надлежащей очистки входных данных. Злоумышленники могут использовать эту уязвимость для внедрения вредоносного контента в выражение, что может привести к повреждению или раскрытию конфиденциальной информации.
• CWE-667: неправильная блокировка – эта ошибка возникает, когда несколько потоков или процессов пытаются получить доступ к одному и тому же XML-ресурсу без надлежащей блокировки или синхронизации. Это может привести к условиям гонки, повреждению данных или другим проблемам.
• CWE-668: воздействие ресурса на неправильную сферу – этот CWE возникает, когда приложение разрешает доступ к XML-ресурсу из другого домена безопасности или уровня доверия, чем предполагалось. Злоумышленники могут использовать эту уязвимость для получения несанкционированного доступа к ресурсам или повышения привилегий.
• CWE-672: операция с ресурсом в неправильной фазе жизненного цикла – этот CWE возникает, когда приложение пытается получить доступ к XML-ресурсу в неподходящее время, например, после его освобождения или до его полной инициализации. Это может привести к повреждению памяти или другим проблемам.
• CWE-674: неконтролируемая рекурсия – этот CWE возникает, когда приложение обрабатывает рекурсивные XML-данные без надлежащих ограничений или проверки. Злоумышленники могут воспользоваться этой уязвимостью, чтобы вызвать отказ в обслуживании или другие проблемы.
• CWE-675: повторяющиеся операции с ресурсом – этот CWE возникает, когда приложение выполняет повторяющиеся или избыточные операции с одним и тем же XML-ресурсом. Это может привести к повреждению данных, проблемам с производительностью или другим проблемам.
• CWE-676: использование потенциально опасной функции – этот CWE возникает, когда приложение использует функцию, которая потенциально может привести к появлению уязвимостей в системе безопасности, таких как непроверенный ввод или переполнение буфера, при обработке XML-данных.
• CWE-677: использование нереентерабельной функции в параллельном контексте – этот CWE возникает, когда приложение использует нереентерабельную функцию, которая не предназначена для обработки нескольких одновременных обращений, в контексте, где возможен параллельный доступ. Это может привести к условиям гонки, повреждению данных или другим проблемам при обработке XML-данных.
Топ-10 CVE, связанных с внедрением XML
• CVE-2023-24323 – Было обнаружено, что Mojoportal версии v2.7 содержит уязвимость для внедрения аутентифицированного XML external entity (XXE).
• CVE-2022-47514 – Уязвимость при внедрении внешнего объекта XML (XXE) в XML-RPC.NET версия 2.5.0 позволяет удаленным пользователям, прошедшим проверку подлинности, проводить атаки на подделку запросов на стороне сервера (SSRF), о чем свидетельствует POST-запрос pingback.aspx.
• CVE-2022-46464 – Было обнаружено, что ConcreteCMS v9.1.3 уязвима для атак с использованием Xpath. Эта уязвимость позволяет злоумышленникам получить доступ к конфиденциальным XML-данным с помощью созданной полезной нагрузки, введенной в папку URL path “3”.
• CVE-2022-45326 – Уязвимость внедрения XML external entity (XXE) в Kwoksys Kwok Information Server до версии v2.9.5.SP31 позволяет удаленным пользователям, прошедшим проверку подлинности, проводить атаки на подделку запросов на стороне сервера (SSRF).
• CVE-2022-43570 – В версиях Splunk Enterprise ниже 8.1.12, 8.2.9 и 9.0.2 аутентифицированный пользователь может выполнить внедрение внешнего объекта (XXE) extensible markup language (XML) с помощью пользовательского представления. Внедрение XXE приводит к тому, что Splunk Web вставляет неправильные документы в ошибку.
• CVE-2022-42307 – Была обнаружена проблема в Veritas NetBackup до версии 10.0.0.1 и связанных продуктах Veritas. Основной сервер NetBackup уязвим для атаки с внедрением XML External Entity (XXE) через службу DiscoveryService.
• CVE-2022-42301 – Была обнаружена проблема в Veritas NetBackup до версии 10.0.0.1 и связанных продуктах Veritas. Основной сервер NetBackup уязвим для атаки с внедрением XML External Entity (XXE) через процесс nbars.
• CVE-2022-40747 – “IBM InfoSphere Information Server 11.7 уязвим для атаки с использованием XML External Entity Injection (XXE) при обработке XML-данных. Удаленный злоумышленник может воспользоваться этой уязвимостью для раскрытия конфиденциальной информации или использования ресурсов памяти. Идентификатор IBM X-Force: 236584”.
• CVE-2022-40705 – ** НЕ ПОДДЕРЖИВАЕТСЯ ПРИ НАЗНАЧЕНИИ ** Уязвимость неправильного ограничения ссылки на внешнюю сущность XML в RPCRouterServlet Apache SOAP позволяет злоумышленнику читать произвольные файлы по протоколу HTTP. Эта проблема затрагивает Apache SOAP версии 2.2 и более поздних версий. Неизвестно, будут ли затронуты и предыдущие версии. ПРИМЕЧАНИЕ: Эта уязвимость затрагивает только те продукты, которые больше не поддерживаются сопровождающим.
• CVE-2022-38389 – IBM Tivoli Workload Scheduler 9.4, 9.5 и 10.1 уязвим для атаки с использованием XML External Entity Injection (XXE) при обработке XML-данных. Удаленный злоумышленник может воспользоваться этой уязвимостью для раскрытия конфиденциальной информации или использования ресурсов памяти. Идентификатор IBM X-Force: 233975.
Внедрение XML-кода подвиги
XXE Инъекция: Этот эксплойт основан на CWE-611 и включает в себя внедрение вредоносных XML-объектов в XML-документ. Затем злоумышленник может использовать эти объекты для чтения файлов, доступа к сетевым ресурсам или выполнения удаленного кода.
Внедрение XPath: Этот эксплойт основан на CWE-643 и включает внедрение вредоносного кода в выражение XPath в XML-документе. Затем злоумышленник может использовать этот код для изменения или извлечения данных из документа, что может привести к повреждению или раскрытию конфиденциальной информации.
Инъекция МЫЛА: Этот эксплойт включает внедрение вредоносного кода в сообщения SOAP, которые представляют собой сообщения на основе XML, используемые в веб-службах. Затем злоумышленник может использовать этот код для изменения или извлечения данных из сообщения, что может привести к повреждению или раскрытию конфиденциальной информации.
Инъекция SAML: Этот эксплойт включает в себя внедрение вредоносного XML-кода в сообщения SAML, которые используются для аутентификации при едином входе. Затем злоумышленник может использовать этот XML-файл для обхода аутентификации, получения доступа к защищенным ресурсам или повышения привилегий.
SVG - инъекция: Этот эксплойт включает в себя внедрение вредоносного XML в документы SVG (Scalable Vector Graphics), которые используются для веб-графики. Затем злоумышленник может использовать этот XML-файл для выполнения удаленного кода или кражи данных из браузера пользователя.
Впрыск RSS: Этот эксплойт включает в себя внедрение вредоносного XML-кода в каналы RSS (Really Simple Syndication), которые используются для синдикации новостей и контента. Затем злоумышленник может использовать этот XML-файл для выполнения удаленного кода или кражи данных из браузера пользователя.
Внедрение HTML-кода: Этот эксплойт включает в себя внедрение вредоносного XML-кода в HTML-документы, которые используются для веб-контента. Затем злоумышленник может использовать этот XML-файл для изменения внешнего вида или поведения страницы, что может привести к повреждению или краже данных.
Практикуясь в тестировании на Внедрение XML-кода
Создайте свое собственное уязвимое приложение:
You can create a simple web application that is vulnerable to XML Injection and use it to practice testing for these vulnerabilities. There are many resources available online that can help you learn how to build web applications with vulnerabilities, such as the OWASP WebGoat project.
Использование уязвимого приложения:
Существует множество уязвимых приложений, доступных для скачивания, которые вы можете использовать для практического тестирования уязвимостей при внедрении XML. Некоторые примеры включают чертовски уязвимое веб-приложение (DVWA), Mutillidae и Dojo веб-безопасности.
Используйте сканер веб-приложений:
Существует множество доступных сканеров веб-приложений, которые могут автоматически проверять уязвимости при внедрении XML, таких как Burp Suite, OWASP ZAP и Acunetix. Вы можете использовать эти инструменты для сканирования собственных веб-приложений или уязвимых приложений, чтобы попрактиковаться в выявлении и использовании уязвимостей, связанных с внедрением XML.
Participate in online challenges:
There are many online challenges and CTFs (Capture the Flag competitions) that include XML Injection challenges. These challenges can be a fun way to practice testing for vulnerabilities and competing with others to see who can solve them the fastest.
Для изучения XML-инъекции
OWASP: Проект Open Web Application Security Project (OWASP) - это некоммерческая организация, которая предоставляет ресурсы и инструменты, помогающие повысить безопасность программного обеспечения. Их веб-сайт включает в себя ряд ресурсов, связанных с внедрением XML, включая страницу, посвященную этой теме. Страница содержит информацию о том, что такое внедрение XML, как оно работает и как его предотвратить.
Веб-козел: WebGoat - это заведомо небезопасное веб-приложение, которое можно использовать для изучения безопасности веб-приложений. Приложение включает в себя ряд уроков, связанных с внедрением XML, которые могут помочь вам узнать об этой уязвимости на практике.
Online courses: There are many online courses available that can help you learn about web application security and XML Injection. Some examples include courses offered by Udemy, Coursera, and Pluralsight.
Книги: Доступно много книг на тему безопасности веб-приложений и внедрения XML. Некоторые популярные книги включают “Безопасность веб-приложений, руководство для начинающих” Брайана Салливана и Винсента Лью, “Взлом открытых веб-приложений” Джоэла Скамбрея, Майка Шемы и Калеба Сима и “Руководство хакера веб-приложений” Дэффида Штуттарда и Маркуса Пинто.
Конференции и встречи: Посещение конференций по безопасности и местных собраний может стать отличным способом узнать об уязвимостях при внедрении XML и других темах безопасности. На этих мероприятиях часто проводятся беседы и семинары по конкретным темам безопасности, включая внедрение XML.
Книги с обзором внедрения XML
“Безопасность веб-приложений: руководство для начинающих” Брайан Салливан и Винсент Лью – Эта книга представляет собой введение в безопасность веб-приложений и включает раздел о внедрении XML. Это отличная отправная точка для тех, кто впервые знаком с безопасностью веб-приложений.
“Взлом открытых веб-приложений” автор: Джоэл Скамбрей, Майк Шема и Калеб Сима – В этой книге представлен подробный обзор безопасности веб-приложений, включая внедрение XML. Это всеобъемлющий ресурс для всех, кто заинтересован в изучении безопасности веб-приложений.
“Руководство хакера веб-приложений” автор: Дафидд Штуттард и Маркус Пинто – Эта книга представляет собой всеобъемлющее руководство по тестированию безопасности веб-приложений, включая описание внедрения XML. Это важный ресурс для всех, кто интересуется безопасностью веб-приложений.
“Межсайтовые скриптовые атаки: эксплойты XSS и защита” Сет Фоги, Иеремия Гроссман и Роберт Хансен – В этой книге рассматриваются атаки с использованием межсайтовых сценариев, которые могут использоваться для использования уязвимостей, связанных с внедрением XML. Это отличный ресурс для тех, кто хочет узнать о безопасности веб-приложений в целом.
“Поваренная книга XSLT” автор: Сэл Мангано – В этой книге рассказывается об использовании XSLT, который можно использовать для преобразования XML-документов. Это ценный ресурс для тех, кто хочет узнать больше о XML и связанных с ним технологиях.
“Веб-безопасность, конфиденциальность и коммерция” Симсон Гарфинкель и Джин Спаффорд – Эта книга охватывает широкий спектр тем веб-безопасности, включая внедрение XML. Это ценный ресурс для тех, кто интересуется безопасностью веб-приложений.
“Профессиональная разработка XML с помощью инструментов Apache: Xerces, Xalan, FOP, Cocoon, Axis, Xindice” автор: Теодор У. Леунг и Скотт Ганьо – В этой книге рассказывается об использовании инструментов Apache для разработки XML. Это ценный ресурс для разработчиков, работающих с XML.
“Обработка XML с помощью Python” автор: Шон МаКграт – В этой книге рассказывается об использовании Python для обработки XML, включая описание внедрения XML. Это отличный ресурс для тех, кто интересуется как Python, так и XML.
“Справочник по XML” Чарльз Ф. Голдфарб, Пол Прескод и Стив ДеРоуз – Эта книга представляет собой всеобъемлющее руководство по XML и связанным с ним технологиям. Это ценный ресурс для тех, кто хочет узнать о XML в целом.
“Карманный справочник XML” Саймон Сен–Лоран и Майкл Фицджеральд - Эта книга представляет собой краткое справочное руководство по XML и связанным с ним технологиям. Это отличный ресурс для тех, кто ищет краткое справочное руководство по XML.
Список полезных нагрузок XML Injection
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]><foo>&xxe;</foo>Эта полезная нагрузка включает в себя DTD (определение типа документа), которое определяет внешнюю сущность с именем “xxe”. Этот объект ссылается на файл “/etc/passwd”, который может быть использован для извлечения конфиденциальной информации.<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo>Эта полезная нагрузка аналогична первой, но она также определяет элемент “foo” как имеющий ЛЮБОЕ содержимое. Это может позволить злоумышленнику ввести в документ произвольный XML-файл.<foo><bar><![CDATA[<]]>script<![CDATA[>]]>alert('XSS')<![CDATA[<]]>/script<![CDATA[>]]></bar></foo>Эта полезная нагрузка пытается ввести тег сценария в документ, используя разделы CDATA, чтобы обойти любую кодировку или фильтрацию, которые могут быть на месте.<foo><bar><script>alert('XSS')</script></bar></foo>This payload is similar to the previous one but uses Unicode encoding to represent the characters “<” and “>”. This can be used to bypass some types of input validation.<foo><bar><![CDATA[<!ENTITY xxe SYSTEM "file:///etc/passwd">]]>&xxe;</bar></foo>Эта полезная нагрузка пытается определить внешнюю сущность непосредственно в элементе XML-документа. Это можно использовать для обхода фильтров, которые ищут только объекты, определенные в DTD.
Как быть защищенным от внедрения XML
Проверка входных данных: Проверьте все входные данные, которые передаются в анализатор XML. Это включает в себя проверку на соответствие XML-схеме или DTD, а также проверку правильности оформления.
Avoid inline DTDs: Avoid using inline DTDs as they can be used to define entities that may allow an attacker to access sensitive data.
Отключить внешние объекты: Отключите обработку внешних объектов в анализаторе XML. Это можно сделать, установив для функции “EXTERNAL_ENTITIES” значение false.
Используйте белый список: Используйте белый список разрешенных символов или шаблонов для полей ввода, чтобы предотвратить инъекционные атаки.
Фильтровать вводимые пользователем данные: Filter user input to remove potentially harmful characters, such as “<” and “>”. This can be done by encoding the input before it is passed to the XML parser.
Используйте выделенную библиотеку XML: Используйте специальную библиотеку XML для анализа XML-документов вместо создания пользовательских анализаторов. Эти библиотеки часто имеют встроенную защиту от распространенных атак с использованием XML-инъекций.
Ограничить доступ к конфиденциальным данным: Ограничьте доступ к конфиденциальным данным и файлам, настроив соответствующие разрешения на доступ к файлам и средства контроля доступа.
Меры по смягчению последствий для внедрения XML
Избегайте использования DTD: DTD (Определения типов документов) могут использоваться для определения внешних объектов, которые могут быть использованы злоумышленниками. По возможности избегайте использования DTD.
Используйте проверку XML-схемы: Используйте XML-схему для проверки входных данных и предотвращения обработки вредоносного содержимого. Проверка схемы XML более безопасна, чем проверка DTD, поскольку она не уязвима для атак XXE (XML External Entity).
Используйте безопасный анализатор XML: Используйте безопасный анализатор XML, разработанный с учетом соображений безопасности. Некоторые популярные безопасные анализаторы включают Xerces, XMLSec и libxml2.
Отключить обработку внешних объектов: Отключите обработку внешних объектов в анализаторе XML. Это можно сделать, установив для функции “EXTERNAL_ENTITIES” значение false.
Фильтровать вводимые пользователем данные: Filter user input to remove potentially harmful characters, such as “<” and “>”. This can be done by encoding the input before it is passed to the XML parser.
Используйте белый список: Используйте белый список разрешенных символов или шаблонов для полей ввода, чтобы предотвратить инъекционные атаки.
Ограничить доступ к конфиденциальным данным: Ограничьте доступ к конфиденциальным данным и файлам, настроив соответствующие разрешения на доступ к файлам и средства контроля доступа.
Используйте шифрование: Используйте шифрование для защиты конфиденциальных данных, которые хранятся или передаются в XML-документах.
Заключение
Внедрение XML-кода это тип инъекционной атаки, нацеленной на приложения на основе XML. Это происходит, когда злоумышленник вводит вредоносные XML-данные в XML-документ, что может привести к неожиданному поведению приложения. Атаки с использованием XML-инъекций могут использоваться для извлечения конфиденциальных данных, выполнения несанкционированного кода и захвата системы.
Чтобы предотвратить атаки с внедрением XML, важно проверять все вводимые данные, избегать использования DTD, использовать безопасный анализатор XML и фильтровать вводимые пользователем данные. Также важно ограничить доступ к конфиденциальным данным и использовать шифрование для защиты данных, которые хранятся или передаются в XML-документах.
To practice and learn more about XML Injection, it is recommended to use test environments, read books and articles on the subject, and take part in online courses and trainings. By following these best practices and staying informed about the latest security threats, you can help protect your applications and data from XML Injection attacks.
Другие Услуги
Insomnia Security Scanner
AI-powered web application security scanner by CQR. Automated vulnerability discovery, exploit verification, and detailed reporting for modern applications.
Узнать большеЗащита Инфраструктуры CRYEYE
Аудит безопасности с помощью CryEye обеспечивает информационную безопасность предприятия, защищая всю инфраструктуру.
Узнать большеТестирование на проникновение
Найдите уязвимости во всей инфраструктуре вашего бизнеса раньше, чем это сделают хакеры! В рамках консалтинга по тестированию на проникновение мы подберем методы пентестов.
Узнать большеСоциальная инженерия
Simulate real-world phishing, vishing, and pretexting attacks to measure and improve your team's security awareness and response capabilities.
Узнать большеНагрузочное Тестирование
All kinds of load and performance testing of your system from the CQR online security company.
Узнать большеAI-Powered Vulnerability Assessment
Leverage artificial intelligence to discover, prioritize, and remediate vulnerabilities across your digital assets faster and more accurately than traditional scanners.
Узнать большеCloud Security Audit (AWS / GCP / Azure)
Comprehensive security review of your cloud environments — IAM policies, network controls, data exposure, and misconfigurations across all major cloud platforms.
Узнать большеDevSecOps Integration
Embed security into every stage of your CI/CD pipeline. Automated SAST, DAST, SCA, and secret scanning so vulnerabilities are caught before they reach production.
Узнать большеAPI Security Testing
In-depth testing of REST, GraphQL, and SOAP APIs for authentication flaws, authorization bypasses, injection vulnerabilities, and data leakage risks.
Узнать большеMobile Application Penetration Testing
Manual and automated security testing for iOS and Android applications — reverse engineering, runtime analysis, traffic interception, and backend API assessment.
Узнать большеIoT Security Assessment
Evaluate firmware, communication protocols, cloud backends, and physical interfaces of IoT devices to identify vulnerabilities before attackers do.
Узнать большеBlockchain & Smart Contract Audit
Formal verification and manual code review of smart contracts on Ethereum, Solana, and other chains. Detect reentrancy, overflow, and logic flaws before deployment.
Узнать большеRed Team Operations
Advanced adversary simulation using real attacker TTPs (MITRE ATT&CK) to test your detection, response, and overall security posture under realistic conditions.
Узнать большеThreat Intelligence & Monitoring
Continuous monitoring of threat feeds, dark web, and attacker infrastructure to provide actionable intelligence specific to your organization and industry.
Узнать большеZero Trust Architecture Review
Assess and design your Zero Trust security model — identity verification, micro-segmentation, least-privilege access, and continuous validation controls.
Узнать большеCompliance Consulting (PCI DSS / SOC 2 / GDPR)
Expert guidance to achieve and maintain compliance with major security frameworks. Gap analysis, remediation roadmaps, and audit-readiness support.
Узнать большеDark Web Monitoring
Continuous surveillance of dark web forums, marketplaces, and breach databases for leaked credentials, sensitive data, or mentions of your organization.
Узнать большеPhishing Simulation & Awareness Training
Controlled phishing campaigns combined with interactive security awareness training to build a human firewall across your entire organization.
Узнать большеSupply Chain Security Audit
Assess third-party vendor risks, open-source dependencies, and software supply chain integrity to prevent attacks like SolarWinds and Log4Shell.
Узнать большеContainer & Kubernetes Security
Security review of Docker images, Kubernetes clusters, RBAC policies, network policies, and runtime configurations to harden your container infrastructure.
Узнать большеWeb Application Firewall (WAF) Deployment
Professional WAF setup, rule tuning, and ongoing management to block SQL injection, XSS, CSRF, and other OWASP Top 10 threats in real time.
Узнать большеBug Bounty Program Management
Full lifecycle management of your bug bounty program — scope definition, researcher coordination, triage, validation, and remediation tracking.
Узнать большеOSINT Investigation Services
Open-source intelligence gathering on individuals, organizations, and infrastructure. Ideal for pre-engagement recon, fraud investigation, and competitive analysis.
Узнать большеDigital Forensics & Incident Response
Rapid response to security breaches — evidence collection, malware analysis, attacker timeline reconstruction, and actionable remediation recommendations.
Узнать больше