Очередной XSS на SoundCloud

в 7:01, , рубрики: javascript, xss-инъекции, информационная безопасность, метки:

image

Вечерний багхантинг на Facebook привел к сервису Soundcloud. Исследовалась возможность XSS уязвимостей при шейринге треков в ленту Facebook. После нескольких неудачных попыток захотелось проверить и сам Soundcloud. В течение первых 5 минут был обнаружен бесполезный, так называемый self-xss — при добавлении нового тега можно передать скрипт. При наведении на этот тэг курсором исполнялся код. Чуть позже я нашел два видео в youtube.com, где горе багхантеры выкладывали это как нечто критичное (один даже назвал видео как «Soundcloud Xss epic fail»). Продолжив свои развлечения, подключил второго персонажа, ведь если есть атакующий, должна быть и жертва.

Залил новый трек, заполнил все поля различными вариациями XSS инъекций и отправил трек жертве. Жертва открыла трек с весьма странными тегами в названиях и описаниях, но таки послушала — получилось сносно, местами не хватало мастеринга. О чем, собственно, жертва и решила сообщить автору, отправив конструктивный комментарий.

В это время автор все продолжал искать места, где можно передать скрипты в полях вывода информации на экран. В очередной раз, перегрузив страничку, атакующий заметил пришедшую нотификацию. Кликнув на звоночек, открывшийся попап с историей уведомлений подарил глазу окошко на весь экран — Бинго! Проведя небольшое исследование, оказалось, что скрипт, прописанный в названии трека, выполняется попапом с нотификациями, если в одной из них идет речь о зараженной композициии. Вот так все просто, как, впрочем, и всегда.

Как этим можно воспользоваться. Атакующий выкладывает очередной хит. Предположим, что ему 100 человек написали восторженные комментарии. Далее, атакующий добавляет к названию трека «нужный» скрипт и отвечает встречным комментарием каждому пользователю. Все юзеры со временем видят у себя нотификацию, мол на ваш комментарий был написан ответ, но как только он открыл попап с нотификациями, чтобы об этом узнать, код будет тотчас же выполнен. Куки слиты, проставлены новые лайки, репосты, новые комментарии — у кого насколько хватит фантазии.

После непродолжительного поиска по сайту я не нашел специального места, где можно было бы зарепортить о проблеме, поэтому решил воспользоваться стандартной страничкой фидбеков. Отправив сообщение, спустя несколько часов решил перепроверить наличие спец. страницы для багрепортов — и таки нашел ее. Зарепортил еще раз.

Через день мне пришло сообщение о том, что баг уже зарепортили до меня. Попытался выяснить, кто и когда, оказалось, судя по подсчетам, о баге зарепортили примерно на 10 часов раньше. Так это или нет, останется загадкой.

Вот такой он, странно-синхронный багхантинг.

Автор: kozyabka

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js