HexBrain

VK.com · Report #80298

Внедрение произвольного javascript-сценария в функционале просмотра изображений мобильной версии сайта

Validstatus
7upvotes
30 Oct 2015disclosed

How it was found

Уязвимость существует из-за недостаточной обработки пользовательских данных, полученных из объекта location (url), который используется в функции photo.fullscreen. Функция выполняется при активации события onclick, который срабатывается при клике на фотографию В настоящее время существует фильтрация пользовательских данных путем экранирования специальных символов, в том числе потенциально-опасного символа одинарной кавычки, однако, фильтрация не затрагивает сам символ слэша, поэтому пользователь может передать в качестве префикса вектора атаки пару \', пройдя через механизм экранирования, пара примет вид \\', следовательно, одинарная кавычка потеряет статус экранирования, что нарушит логику работы функции и позволит выполнить злоумышленнику произвольный js сценарий.

Пример https://m.vk.com/feed?z=photo-25557243_375319886%2F#abc'123 photo.fullscreen('/feed?z=photo-25557243_375319886%2Falbum-25557243_00#abc\'123', event); https://m.vk.com/feed?z=photo-25557243_375319886%2F#abc\'123 photo.fullscreen('/feed?z=photo-25557243_375319886%2Falbum-25557243_00#abc\\'123', event)

Пример вектора атаки с выполнением всплывающего окна https://m.vk.com/feed?z=photo-25557243_375319886%2F#\')+alert(document.domain)//

Уязвимость усугубляется тем, что данный вид атаки работает во всех современных браузерах и не детектируется в встроенные в браузер механизм защиты (XSS Auditor). Злоумышленник, в результате эксплуатации данной атаки может подменять содержимое сайта, переслать переписку или выполнять произвольные действия от лица пользователя.

Демонстрация эксплуатации на следующем видео: https://youtu.be/Y9mm3OcESoU

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original