9
PHD2011 АТАКА XML eXternal Entity Сергей Щербель Positive Technologies

Сергей Щербель - Атаки XML eXternal Entity

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Сергей Щербель - Атаки XML eXternal Entity

PHD2011АТАКА XML eXternal Entity

Сергей Щербель

Positive Technologies

Page 2: Сергей Щербель - Атаки XML eXternal Entity

Задание

SVN + XXE = profit

Page 3: Сергей Щербель - Атаки XML eXternal Entity

SVN

SVN – система управления версиями, позволяющая хранить несколько версий одного и того же документа.

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

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

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

Page 4: Сергей Щербель - Атаки XML eXternal Entity

Атака XML eXternal Entity

XML – язык разметки, широко применяемый в распределенных приложениях, в том числе и веб-приложениях.

Для записи спецсимволов в XML документах используются так называемые сущности (Entity). Сущностью называются именованные данные, как правило, текстовые (в частности спецсимволы).

Сущности можно разделить на следующие категории:

Предопределенные

Внутренние

Внешние

Page 5: Сергей Щербель - Атаки XML eXternal Entity

Атака XML eXternal Entity

Пример предопределенной сущности: " (символ двойной кавычки).

Пример внутренней сущности:

<!ENTITY positive  "hek">

<phd>&positive;</phd>

Внешние сущности ссылаются на сторонние файлы.

Атака XML eXternal Entity заключается в использовании внешних сущностей.

<!ENTITY epicwin  SYSTEM "file:///etc/passwd">

Фикс – запретить использование внешних сущностей:

DOMDocument::loadXML($xml, LIBXML_NOENT);

Page 6: Сергей Щербель - Атаки XML eXternal Entity

Через XXE был взломан Яндекс

В рамках конкурса «месяц поиска уязвимостей Яндекса» Владимиром Воронцовым (D0znpp) была найдена уязвимость XXE.

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

Page 7: Сергей Щербель - Атаки XML eXternal Entity

Прохождение

Шаг 1: найти в каталоге .svn исходный код сценария config.php:

Page 8: Сергей Щербель - Атаки XML eXternal Entity

Прохождение

Шаг 2: реализовать атаку XXE, отправив специально сформированный POST-запрос:

Page 9: Сергей Щербель - Атаки XML eXternal Entity

Спасибо за внимание!