Добро пожаловать обратно, мои начинающие кибервоины веб-приложений!
К наиболее распространенным типам атак на веб-приложения относится атака XXE. Это атака типа «внедрение внешней сущности XML » . Этот тип уязвимости позволяет злоумышленнику помешать обработке XML - данных приложением. Многие приложения используют формат XML для передачи данных между браузером и сервером. Атака происходит, когда веб-приложение ссылается на данные во внешней сущности, используя XML для передачи данных.
Эта атака позволяет злоумышленнику получить доступ или просмотреть файлы в файловой системе внутреннего сервера или другие данные, к которым приложение может получить доступ.
Что такое XML?
XML расшифровывается как Extensible Markup Language (расширяемый язык разметки). XML — это язык разметки для описания структурированного формата документа. XML во многом похож на HTML, но его определение строже, что упрощает парсеры и повышает безопасность. XML разработан таким образом, чтобы быть понятным как человеку, так и машине, и используется в основном для передачи данных между приложениями.
Давайте рассмотрим, как можно использовать атаку XXE для раскрытия конфиденциальных данных на сервере.
Шаг 1. Откройте Kali и OWASP-BWA.
Первый шаг — запустить Kali на одной виртуальной машине и OWASP-BWA на другой.
Теперь откройте браузер в Kali, перейдите по IP-адресу OWASP-BWA и нажмите на веб-приложение OWASP Mutillidae II.
Перейдите на вкладку «Другие» слева, а затем « Внедрение внешней сущности XML» и «Валидатор XML», как показано ниже.
Это откроет XML-валидатор следующим образом.
Шаг №2 : Добавьте XML в валидатор
Валидатор XML предназначен для проверки корректности формата вашего XML-документа. Если это так, валидатор отобразит его содержимое ниже. Вы можете ввести любой текст в окно XML и нажать кнопку «Проверить XML» под ним, чтобы проверить корректность формата вашего XML-документа.
Здесь мы вводим простой XML с сообщением. Если он сформирован правильно, сообщение отображается под XML. В противном случае валидатор XML выведет сообщение об ошибке.
Давайте посмотрим, сможем ли мы манипулировать этой функциональностью, чтобы внедрить вредоносный XML для извлечения ресурсов на веб-сервере.
Шаг №3: Откройте BurpSuite и настройте прокси- сервер
Далее откроем BurpSuite и настроим прокси в нашем браузере.
Теперь введите наш правильно сформированный XML и перехватите запрос в прокси, как показано ниже.
Мы видим, где XML-анализатор преобразовал XML в URL.
Что, если бы мы могли отправлять вредоносные XML-запросы на файлы или другие ресурсы на сервере? Смогли бы мы получить конфиденциальные файлы, запросив их с помощью XML? Давайте попробуем.
Давайте создадим некоторый XML, который запрашивает файл /etc/passwd с веб-сервера, например:
<?xml версия="1.0″ "?>
<!Журнал изменений DOCTYPE [
<!ENTITY systemEntity SYSTEM “../../../../etc/passwd” >]>
<журнал изменений><текст>&systemEntity;
</text></change-log>
Теперь откройте вкладку «Декодер» в BurpSuite и введите этот XML, как показано ниже. Затем нажмите кнопку «Кодировать как …», и появится раскрывающееся меню.
Поскольку мы хотим поместить этот XML в URL, выберите URL- кодировку
Это закодирует (переведет) наш XML в форму, которую мы можем использовать в URL-адресе, который будет запрашивать ресурсы.
Шаг №4: Поместите закодированный XML в URL - адрес
Теперь вернитесь к прокси-серверу BurpSuite, скопируйте и вставьте закодированный XML-код в URL-адрес GET-запроса из браузера. Убедитесь, что он расположен точно там же, где и исходный XML, как показано ниже.
Теперь перешлите пакет в приложение Mutilldae II.
В приложении вы должны увидеть следующее: сначала отправленный XML, а затем содержимое файла /etc/passwd веб-сервера!
XML запросил файл /etc/passwd, и парсер предоставил нам доступ. Конечно, это мог быть любой ресурс на веб-сервере.
Краткое содержание
Многие веб-приложения используют XML для передачи данных между браузером и сервером. Если злоумышленник сможет создать корректный XML и внедрить его в запрос, он сможет получить доступ к внешним данным на веб-сервере или других ресурсах.
К наиболее распространенным типам атак на веб-приложения относится атака XXE. Это атака типа «внедрение внешней сущности XML » . Этот тип уязвимости позволяет злоумышленнику помешать обработке XML - данных приложением. Многие приложения используют формат XML для передачи данных между браузером и сервером. Атака происходит, когда веб-приложение ссылается на данные во внешней сущности, используя XML для передачи данных.
Эта атака позволяет злоумышленнику получить доступ или просмотреть файлы в файловой системе внутреннего сервера или другие данные, к которым приложение может получить доступ.
Что такое XML?
XML расшифровывается как Extensible Markup Language (расширяемый язык разметки). XML — это язык разметки для описания структурированного формата документа. XML во многом похож на HTML, но его определение строже, что упрощает парсеры и повышает безопасность. XML разработан таким образом, чтобы быть понятным как человеку, так и машине, и используется в основном для передачи данных между приложениями.
Давайте рассмотрим, как можно использовать атаку XXE для раскрытия конфиденциальных данных на сервере.
Шаг 1. Откройте Kali и OWASP-BWA.
Первый шаг — запустить Kali на одной виртуальной машине и OWASP-BWA на другой.
Теперь откройте браузер в Kali, перейдите по IP-адресу OWASP-BWA и нажмите на веб-приложение OWASP Mutillidae II.
Перейдите на вкладку «Другие» слева, а затем « Внедрение внешней сущности XML» и «Валидатор XML», как показано ниже.
Это откроет XML-валидатор следующим образом.
Шаг №2 : Добавьте XML в валидатор
Валидатор XML предназначен для проверки корректности формата вашего XML-документа. Если это так, валидатор отобразит его содержимое ниже. Вы можете ввести любой текст в окно XML и нажать кнопку «Проверить XML» под ним, чтобы проверить корректность формата вашего XML-документа.
Здесь мы вводим простой XML с сообщением. Если он сформирован правильно, сообщение отображается под XML. В противном случае валидатор XML выведет сообщение об ошибке.
Давайте посмотрим, сможем ли мы манипулировать этой функциональностью, чтобы внедрить вредоносный XML для извлечения ресурсов на веб-сервере.
Шаг №3: Откройте BurpSuite и настройте прокси- сервер
Далее откроем BurpSuite и настроим прокси в нашем браузере.
Теперь введите наш правильно сформированный XML и перехватите запрос в прокси, как показано ниже.
Мы видим, где XML-анализатор преобразовал XML в URL.
Что, если бы мы могли отправлять вредоносные XML-запросы на файлы или другие ресурсы на сервере? Смогли бы мы получить конфиденциальные файлы, запросив их с помощью XML? Давайте попробуем.
Давайте создадим некоторый XML, который запрашивает файл /etc/passwd с веб-сервера, например:
<?xml версия="1.0″ "?>
<!Журнал изменений DOCTYPE [
<!ENTITY systemEntity SYSTEM “../../../../etc/passwd” >]>
<журнал изменений><текст>&systemEntity;
</text></change-log>
Теперь откройте вкладку «Декодер» в BurpSuite и введите этот XML, как показано ниже. Затем нажмите кнопку «Кодировать как …», и появится раскрывающееся меню.
Поскольку мы хотим поместить этот XML в URL, выберите URL- кодировку
Это закодирует (переведет) наш XML в форму, которую мы можем использовать в URL-адресе, который будет запрашивать ресурсы.
Шаг №4: Поместите закодированный XML в URL - адрес
Теперь вернитесь к прокси-серверу BurpSuite, скопируйте и вставьте закодированный XML-код в URL-адрес GET-запроса из браузера. Убедитесь, что он расположен точно там же, где и исходный XML, как показано ниже.
Теперь перешлите пакет в приложение Mutilldae II.
В приложении вы должны увидеть следующее: сначала отправленный XML, а затем содержимое файла /etc/passwd веб-сервера!
XML запросил файл /etc/passwd, и парсер предоставил нам доступ. Конечно, это мог быть любой ресурс на веб-сервере.
Краткое содержание
Многие веб-приложения используют XML для передачи данных между браузером и сервером. Если злоумышленник сможет создать корректный XML и внедрить его в запрос, он сможет получить доступ к внешним данным на веб-сервере или других ресурсах.