Всякий раз, когда я вижу форму загрузки файла во время теста , я обращаю на это внимание. В лучшем случае я могу загрузить обратную оболочку(shell) на языке сценариев, доступном на веб-сервере. Если приложение работает например на PHP или ASP, это становится довольно легко. Если я не могу загрузить backdoor, я попытаюсь загрузить HTML-страницу, чтобы загрузить свой собственный javascript на стороне клиента для xss-атак.
При тестировании веб-приложения, я обнаружил, что аутентифицированный пользователь может загрузить файл для предъявления претензий . Кнопка загрузить предназначена для загрузки Microsoft Word .docx файлов.
После того, как пользователь загрузил файл, он может быть скачан. Сравнение между загруженными .docx файлом и скачанным .docx-файлом показал, что они были разными, это значит, что выполняется некоторая обработка на файле перед размещением для скачивания.
В то время как файл загружается, можно изменить расширение файла. Я изменил расширение файла на .HTML.
Когда файл .html формата извлекается с сервера, заголовок Content-Type имеет значение text/html. В результате этого, браузер попытается отобразить файл в формате HTML. Затем я попытался спрятать полезную нагрузку XSS в .docx файл. Поскольку тип файла сжат, мне нужно было определить область в теле файла, которая не будет изменена во время сжатия или последующей обработки из приложения. Было обнаружено, что некоторые пути к файлам в структуре файла не были изменены в процессе загрузки. Я изменил имя файла в Settings.xml в пределах .docx файла, чтобы дополнить его символами.
После сжатия структуры в a.docx, я использовал шестнадцатеричный редактор, чтобы перезаписать некоторые байты в имени файла, для вставки JavaScript кода.
Сервер принял загрузку измененного .docx файла. Расширение файла было изменено на .html во время HTTP POST.
При запросе файла, он выполнился в качестве HTML-файла с неповрежденной полезной нагрузкой XSS.
При визуализации в браузере выполняется JavaScript. Любой, кто перейдет по ссылке на этот файл, выполнит JavaScript код в своем браузере в контексте домена, в котором размещено приложение.
Чтобы обфусцировать эту атаку, злоумышленник может включить URI загрузки в небольшой или невидимый iframe, чтобы жертва не заметила, что полезная нагрузка выполняется. В этом примере отображается видимый пэйлоад.
Источник:
При тестировании веб-приложения, я обнаружил, что аутентифицированный пользователь может загрузить файл для предъявления претензий . Кнопка загрузить предназначена для загрузки Microsoft Word .docx файлов.
После того, как пользователь загрузил файл, он может быть скачан. Сравнение между загруженными .docx файлом и скачанным .docx-файлом показал, что они были разными, это значит, что выполняется некоторая обработка на файле перед размещением для скачивания.
В то время как файл загружается, можно изменить расширение файла. Я изменил расширение файла на .HTML.
Когда файл .html формата извлекается с сервера, заголовок Content-Type имеет значение text/html. В результате этого, браузер попытается отобразить файл в формате HTML. Затем я попытался спрятать полезную нагрузку XSS в .docx файл. Поскольку тип файла сжат, мне нужно было определить область в теле файла, которая не будет изменена во время сжатия или последующей обработки из приложения. Было обнаружено, что некоторые пути к файлам в структуре файла не были изменены в процессе загрузки. Я изменил имя файла в Settings.xml в пределах .docx файла, чтобы дополнить его символами.
После сжатия структуры в a.docx, я использовал шестнадцатеричный редактор, чтобы перезаписать некоторые байты в имени файла, для вставки JavaScript кода.
Сервер принял загрузку измененного .docx файла. Расширение файла было изменено на .html во время HTTP POST.
При запросе файла, он выполнился в качестве HTML-файла с неповрежденной полезной нагрузкой XSS.
При визуализации в браузере выполняется JavaScript. Любой, кто перейдет по ссылке на этот файл, выполнит JavaScript код в своем браузере в контексте домена, в котором размещено приложение.
Чтобы обфусцировать эту атаку, злоумышленник может включить URI загрузки в небольшой или невидимый iframe, чтобы жертва не заметила, что полезная нагрузка выполняется. В этом примере отображается видимый пэйлоад.
Источник:
Ссылка скрыта от гостей
Последнее редактирование: