В мобильной версии сайта Instagram пропатчена критическая уязвимость, позволявшая сбросить пароль к любому аккаунту и угнать его безо всякого взаимодействия с пользователем. Обнаруживший эту возможность исследователь получил $30 тыс. в рамках программы bug bounty компании Facebook — владельца соцсервиса Instagram.

По словам баг-хантера из Индии Лаксмана Мутхияха (Laxman Muthiyah), уязвимость крылась в механизме восстановления/смены пароля, который предполагает ввод номера телефона при заходе в сецсеть с мобильного устройства. В ответ пользователю высылается 6-значный код для подтверждения правомочности запроса. Время, отводимое на ввод одноразового пароля, ограничено, однако эту защиту от брутфорса, как выяснилось, можно обойти.

В ходе тестирования i.instagram.com исследователь обнаружил, что лимит на ввод секретного кода работает исправно, но черные списки IP-адресов при этом не применяются. В итоге злоумышленник может попытаться подобрать нужную комбинацию, одновременно посылая запросы из разных источников. Правда, срок действия одноразового пароля истекает через 10 минут, поэтому количество подставных IP должно быть значительным.

Пробная атака показала, что при использовании 1000 источников запроса вероятность успешного взлома составляет 20%. Если число атакующих IP увеличить до 5000, успех взломщику гарантирован. Мутхиях подчеркнул, что в настоящее время подобный брутфорс может обойтись всего в 150 долларов, если использовать облачный сервис Google или Amazon.

Исследователь доложил о своей находке по всей форме и в итоге удостоился вознаграждения от Facebook как участник ее программы bug bounty.

Найденный Мутхияхом баг — далеко не единственный на счету Instagram. Так, например, в прошлом году на сервисе была устранена уязвимость, привнесенная с запуском опции Download Your Data. Из-за некорректной реализации этого механизма пароль, вводимый для подтверждения вывода данных, мог появиться в адресной строке, к тому же в открытом виде.

Категории: Уязвимости