• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Получаем 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
На сайте источнике есть полноразмерные скриншоты, почему не вставить их?
 
Мы в соцсетях:

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