Закрытая уязвимость CSRF в Facebook

в 7:57, , рубрики: Facebook, информационная безопасность, метки:
image

Уязвимость была обнаружена Josip Franjković и устранена около двух месяцев назад, а вчера автор рассказал про нее в блоге pyx.io. У бага есть схожесть с находкой Дэна Меламеда.

Для проведения эксплоита требовался аккаунт в Facebook, почта на Outlook.com и жертва. При этом email в Outlook не должен был быть привязан к вашему аккаунту Facebook.

В Facebook есть функция в "Поиск контактов на Facebook" (Find contacts on Facebook), которая приглашает контакты из списка ваших контактов и добавляет email к вашему аккаунт.

Когда вы разрешаете Facebook доступ к контактной книге Outlook, происходит запрос GET к
https://m.facebook.com/contact-importer/login/?api_instance=1&api_ver=wave5&auth_token=TOKEN
который добавляет email к вашему аккаунту.

Валидный токен, который получал автор:

{"code":"2c59ed24-8674-a76a-3232-6fse0d6d5cc7",
"redirect_uri":"https://www.facebook.com/accept_token.php?api_ver=wave5&csrf=AQDt6cT&
appdata={"use_case":1,"type":1,"flow":30,"domain_id":4,"tracked_params":"[]","enc_uid":"AdjjCVjSQ3I1RFRllRz81ohsy737W7oipkrAYKmCYISHLHcmzi55G4GaGckcSCP97t0",
"post_login_redirect":"https://m.facebook.com/contact-importer/login/?api_instance=1&api_ver=wave5"}"}

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

Алгоритм действий потенциального злоумышленника был следующим: использовать «Поиск контактов на Facebook» со своего аккаунта, при этом логируя все запросы; найти запрос к /contact-importer/login, отвязать добавленный email от своего аккаунта и каким-либо способом заставить жертву сделать запрос к /contact-importer/login. Теперь email будет добавлен к аккаунту жертвы, и можно воспользоваться функцией «Забыл свой пароль» для получения доступа к нему.

Видео с демонстрацией эксплойта:

Автор: HotWaterMusic

Источник

Поделиться

* - обязательные к заполнению поля