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

Disclosed: 2015-10-30 12:10:41 By bo0om To vkcom
Unknown
Vulnerability Details
Уязвимость существует из-за недостаточной обработки пользовательских данных, полученных из объекта 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
Actions
View on HackerOne
Report Stats
  • Report ID: 80298
  • State: Closed
  • Substate: resolved
  • Upvotes: 6
Share this report