• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Статья Получаем XSS на сайте через .docx файл

Всякий раз, когда я вижу форму загрузки файла во время теста , я обращаю на это внимание. В лучшем случае я могу загрузить обратную оболочку(shell) на языке сценариев, доступном на веб-сервере. Если приложение работает например на PHP или ASP, это становится довольно легко. Если я не могу загрузить backdoor, я попытаюсь загрузить HTML-страницу, чтобы загрузить свой собственный javascript на стороне клиента для xss-атак.

XSS_1.jpg


При тестировании веб-приложения, я обнаружил, что аутентифицированный пользователь может загрузить файл для предъявления претензий . Кнопка загрузить предназначена для загрузки Microsoft Word .docx файлов.

XSS_2.jpg


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

XSS_3.jpg


В то время как файл загружается, можно изменить расширение файла. Я изменил расширение файла на .HTML.

XSS_4.jpg


Когда файл .html формата извлекается с сервера, заголовок Content-Type имеет значение text/html. В результате этого, браузер попытается отобразить файл в формате HTML. Затем я попытался спрятать полезную нагрузку XSS в .docx файл. Поскольку тип файла сжат, мне нужно было определить область в теле файла, которая не будет изменена во время сжатия или последующей обработки из приложения. Было обнаружено, что некоторые пути к файлам в структуре файла не были изменены в процессе загрузки. Я изменил имя файла в Settings.xml в пределах .docx файла, чтобы дополнить его символами.

XSS_5.jpg


После сжатия структуры в a.docx, я использовал шестнадцатеричный редактор, чтобы перезаписать некоторые байты в имени файла, для вставки JavaScript кода.

XSS_6.jpg


Сервер принял загрузку измененного .docx файла. Расширение файла было изменено на .html во время HTTP POST.

XSS_7.jpg


При запросе файла, он выполнился в качестве HTML-файла с неповрежденной полезной нагрузкой XSS.

XSS_8.jpg


При визуализации в браузере выполняется JavaScript. Любой, кто перейдет по ссылке на этот файл, выполнит JavaScript код в своем браузере в контексте домена, в котором размещено приложение.

XSS_9.jpg


Чтобы обфусцировать эту атаку, злоумышленник может включить URI загрузки в небольшой или невидимый iframe, чтобы жертва не заметила, что полезная нагрузка выполняется. В этом примере отображается видимый пэйлоад.

XSS_10.jpg


Источник:
 
Последнее редактирование:

arbaiten

Green Team
03.12.2017
13
9
BIT
0
На сайте источнике есть полноразмерные скриншоты, почему не вставить их?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!