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

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

586

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

Как работает двухфакторная аутентификация Yandex’а?

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

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

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

Снутри всего этого интернет-страница с QR-кодом повсевременно опрашивает сервер в ожидании авторизации:
POST /auth/magic/status/ HTTP/1.1
Host: passport.yandex.ru

track_id=38e701d0bb5abaf50d381c3f95e0f341a8
Как лишь юзер отсканирует приложением Yandex’а QR-код, последующий таковой запрос даст браузеру куку.

В чем тут неувязка?

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

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

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

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

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

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