...

среда, 4 февраля 2015 г.

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

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

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

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


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


http://ift.tt/1KssWFj


Внутри всего этого веб-страничка с 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-код с помощью библиотеки http://ift.tt/1Df1o6a, быстро-быстро делает POST запросы к Яндексу, получает куки, подставляет их в WebView и открывает в нем Яндекс.Почту.


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


Recommended article: Chomsky: We Are All – Fill in the Blank.

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий