- PVSM.RU - https://www.pvsm.ru -

Как взломать двухфакторную аутентификацию Яндекса

Наконец-то Яндекс запилил двухфакторную аутентификацию. Я не ждал подвоха, но, похоже, зря.

Как работает двухфакторная аутентификация Яндекса?
В браузере отображается QR-код, юзер сканирует его специальным приложением, браузер сразу это чувствует и авторизует пользователя.

QR-код расшифровывается в ссылку вот такого вида:

yandex.ru/promo/2fa?track_id=38e701d0bb5abaf50d381c3f95e0f341a8 [1]

Внутри всего этого веб-страничка с QR-кодом постоянно опрашивает сервер в ожидании авторизации:

POST /auth/magic/status/ HTTP/1.1
Host: passport.yandex.ru

track_id=38e701d0bb5abaf50d381c3f95e0f341a8

Как только пользователь отсканирует приложением Яндекса QR-код, следующий такой запрос отдаст браузеру куку.

В чем здесь проблема?

Для получения куки используется тот же ID, что закодирован в QR-коде.
Обратите внимание на параметр track_id в ссылке и такой же параметр в POST-запросе.
Это значит, что злоумышленник может подсмотреть из-за плеча пользователя его QR-код, достать из него ID сессии, и, притворившись браузером, выполнять часто-часто такой же запрос.

И если хакер раньше жертвы успеет получить сессию — он сразу окажется в аккаунте пользователя.

Я написал на коленке простенькое приложение под Android, которое демонстрирует эту уязвимость.
Достаточно встать за спиной жертвы и успеть отсканировать qr-код раньше нее, пока жертва запускает приложение и вводит пин-код.

После того, как она авторизуется, приложение покажет вам почтовый ящик жертвы.

Приложение декодирует QR-код с помощью библиотеки github.com/dm77/barcodescanner [2], быстро-быстро делает POST запросы к Яндексу, получает куки, подставляет их в WebView и открывает в нем Яндекс.Почту.

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

Автор: zuyac

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/yandeks/81702

Ссылки в тексте:

[1] yandex.ru/promo/2fa?track_id=38e701d0bb5abaf50d381c3f95e0f341a8: http://yandex.ru/promo/2fa?track_id=38e701d0bb5abaf50d381c3f95e0f341a8

[2] github.com/dm77/barcodescanner: https://github.com/dm77/barcodescanner

[3] Источник: http://habrahabr.ru/post/249757/