Миллионы сайтов уязвимы к XSS из-за корявой имплементации OAuth

Миллионы сайтов уязвимы к XSS из-за корявой имплементации OAuth

Миллионы сайтов уязвимы к XSS из-за корявой имплементации OAuth

Исследователи из Salt Labs обнародовали разбор нового вектора XSS-атаки (межсайтовый скриптинг), который в теории может угрожать миллионам сайтов по всему миру.

Стоит учитывать, что это не уязвимость в каком-либо продукте, поэтому её нельзя устранить централизованно. Корень проблемы кроется в сочетании веб-кода с популярным приложением OAuth.

Не так давно мы разбирали уязвимости протокола OAuth 2.0 и оценивали, опасно ли аутентифицироваться через профиль в социальных сетях. А в мае на Anti-Malware.ru рассказывали о том, как противостоять растущему числу атак с использованием OAuth-приложений.

В описанном Salt Labs векторе проблема не в самом OAuth, а скорее в его реализации на веб-сайтах. Если администратор ресурса недостаточно качественно имплементировал OAuth (что случается довольно часто), у злоумышленников открывается возможность провести XSS-атаку и получить контроль над аккаунтом.

В отчёте Salt Labs утверждается, что описанная проблема была обнаружена на сайтах таких крупных проектов, как Booking.com, Grammarly и OpenAI. Если администраторы этих ресурсов не смогли должным образом имплементировать OAuth, чего можно ждать от менее значимых веб-сайтов, спрашивают эксперты.

«Если мы продолжим прощупывать разные интернет-проекты, мы гарантированно найдём больше сайтов с этой проблемой. Я убеждён в этом», — пишет Янив Балмас из Salt Labs.

«Для эксплуатации этой бреши мы использовали JavaScript-код, который запускал поток OAuth-аутентификации в новом окне, а затем считывал токен из этого окна».

Google перенаправляет пользователя, но с «секретами» аккаунта в URL, а код JS считывает URL-адрес из новой вкладки и вытаскивает оттуда учётные данные.

Salt Labs создала специальный сканер, с помощью которого владельцы сайтов смогут узнать, уязвимы ли их проекты.

В МАКС нашли вход без пароля и СМС через токен в браузере

Вокруг российского мессенджера МАКС разгорелась новая дискуссия о безопасности. Пользователь Хабра под ником sansmaster рассказал, что для входа в веб-версию сервиса можно обойтись без пароля, СМС-кода и даже QR-аутентификации.

Правда, речь идёт не о взломе и не об уязвимости в классическом понимании.

Автор публикации обратил внимание, что после успешного входа в web.max.ru браузер сохраняет токен сессии в локальном хранилище (localStorage). Этот токен позволяет серверу идентифицировать пользователя и поддерживать активную сессию.

Через консоль разработчика браузера пользователь может извлечь сохранённый токен, а затем импортировать его в другой браузер или на другой компьютер. После перезагрузки страницы веб-версия МАКС откроется уже под нужной учётной записью, и всё это без ввода пароля, получения СМС или сканирования QR-кода.

 

По сути, речь идёт о переносе уже существующей сессии между браузерами. Сам автор подчёркивает, что никаких эксплойтов или обходов защиты здесь нет. Используются штатные механизмы браузера и данные, которые приложение само сохраняет на устройстве пользователя. Аналогичные принципы работы применяются и во многих других веб-сервисах.

 

Тем не менее публикация вызвала бурное обсуждение. Многие пользователи удивились тому, насколько легко можно получить доступ к токену через DevTools и перенести его в другую среду.

При этом есть важный нюанс. Для выполнения всей процедуры злоумышленнику уже необходим доступ к устройству или браузеру пользователя, где активна сессия МАКС. Без этого получить токен не получится.

Кроме того, выход из аккаунта или завершение сессии через настройки делает токен недействительным сразу на всех устройствах, где он использовался.

 

Фактически история стала ещё одним напоминанием о том, что токен аутентификации зачастую представляет не меньшую ценность, чем пароль. Если он попадает в чужие руки, то может открыть доступ к аккаунту без каких-либо дополнительных проверок.

RSS: Новости на портале Anti-Malware.ru