>
Сентябрь 2017
Пн Вт Ср Чт Пт Сб Вс
« Авг    
 123
45678910
11121314151617
18192021222324
252627282930  

Уязвимость XML External Entity. Уроки хакинга – глава 11.

XML External Entity(XXE) это атака, направленая на приложение, которое обрабатывает парсит XML код. OWASP утверждает, что эта возможность этой атаки возникает,когда XML код содержит ссылки на внешние сущности, которые обрабатываются плохо настроенным парсером.

Уязвимость XML External Entity

Другими словами, путём передачи вредоносного XML кода атакующий может использовать парсер против рассматриваемой системы, либо раскрыть важную информацию, провести SSRF атаку и даже выполнить произвольный код.

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

Вот пример вредоносного XXE, взятого с OWASP:


Здесь определен корневой элемент “foo” вместе с элементом “ANY”, что означает, что содержимое элемента “foo” может быть расширено это подключает следующую строку, которая ссылается на entity, получающую содержимое файла /etc/passwd. Далее полученный контент передается в элемент , заменяя &xxe содержимым файла.

Ссылки:

Почитайте OWASP XML External Entity (XXE) Processing Шпаргалка по XXE Silent Robots XML Entity Cheatsheet

Примеры Уязвимости XML External Entity

1. Доступ на чтение Google

Сложность:Средняя
Url: google.com/gadgets/directory?synd=toolbar
Ссылка на отчёт:Detectify Blog

Описание Уязвимости XML External Entity

Эта уязвимость довольно очевидна. Google’s Toolbar Button Gallery позволяет разработчикам создавать свои собственные кнопки путём загрузки XML файла, который содержит определенные метаданные.

В соответствии с описанием уязвимости от команды Detectify, после загрузки XML файла, подобно примеру описанному выше в описании, Google парсил файл и приступил к визуализации содержимого данного файла:

Detectify screenshot of Google’s internal files

Detectify screenshot of Google’s internal files

Выводы

Даже Большие Парни могут быть уязвимы. Несмотря на то, что этому отчёту уже почти 2 года, он по прежнему служит хорошим примером того, что большие компании могут быть уязвимы. Необходимый XML код можно легко загрузить на сайты, в которых используются XML парсеры. Однако, иногда это может не сработать, так что вам придется проверить другие способы с шпаргалки выше.

Facebook XXE через Word

Сложность: Высокая
Url: facebook.com/careers

Эта XXE атака немного сложнее чем предыдущая. В далёком 2013 году Facebook исправил XXE уязвимость, которую вполне могла привести к RCE. Они заплатили около $30,000.

В результате,когда Мохамед в апреле 2014-го поставил перед собой задачу взломать Facebook, он и не думал, что XXE возможна, пока он не нашёл страницу carrer, которая позволяла пользователям загружать файлы с расширением .docx, которые могли включать в себя XML.

В результате, по его словам, он создал файл .docx и открыл его через 7zip, извлёк содержимое файла и нашёл xml файл в содержимом docx. Он вставил следующий проверочный код:

Немного отличается от того, что мы видели выше. Хотя начало похожее, но далее код включает вызов SYSTEM, чтобы связаться с удаленным хостом, который находится под контролем Мохамеда. Он также подключил другой файл, очень похожий, но содержащий строку FACEBOOK-HACKED.

При парсинге XML-обработчик осуществит вызов к удаленно-
му хосту, и этот вызов будет залогирован. Так что когда Моха-
мед запустил локальный сервер, используя Python и SimpleHTTPServer и подождал… он получил:

Attack Secure Screenshot of Facebook remote calls

Attack Secure Screenshot of Facebook remote calls

 

После отправки отчета Facebook ответил ему с отказом принять баг, со словами о невозможности воспроизвести баг и просьбой предоставить видеозапись эксплуатации бага. После обмена сообщениями, Facebook упомянул, что рекрутер, вероятно, открыл файл, который отправлял произвольный запрос. Команда Facebook провела более глубокое расследование и выплатила вознаграждение, отправив письмо, объясняющее, что воздействие от этой XXE-уязвимости было менее значимым, чем от изначальной в 2013, но она по-прежнему могла быть использована. Вот сообщение:

Выводы

Из этой ситуации следует пара выводов. XXE не ограничена XML-файлами, вы можете использовать .docx, .xlsx, .pptx, и так далее. Как я говорил ранее, иногда вы не будете получать ответ от XXE незамедлительно этот пример показывает, что вы можете поднять сервер, на который придет запрос, демонстрирующий наличие XXE.

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

Share Button
[Всего голосов: 7    Средний: 3.7/5]

Вам может быть интересно также:

Last updated by at .

Leave a Reply

You can use these HTML tags

<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">