Уязвимость Мой Мир@Mail.Ru: слив фотографий и переписок

в 20:48, , рубрики: информационная безопасность

На фоне новостей об утечке персональных данных из facebook, я решил вспомнить об одной интересной уязвимости, которая присутствовала в социальной сети «Мой Мир» от Mail.Ru Group.

Уязвимость Мой Мир@Mail.Ru: слив фотографий и переписок - 1

Воспользоваться уязвимостью можно было через REST API проекта. Ей был подвержен любой пользователь, который хотя бы раз передавал токен какому-либо приложению. Т.е. встроенные игры, oauth-авторизация и, конечно, официальные приложения iOS и Android.

Стоит отметить, что баг позволяет нам воспользоваться только теми привилегиями, которые пользователь выдал приложению. Таким образом, мобильные клиенты становятся самыми уязвимыми. Только у приложения под android 10 — 50 млн. скачиваний.

Обнаружение уязвимости

Работая с API, я случайно сделал запрос с устаревшим токеном. В ответ был получен ответ:

{"error":{"error_msg":"User authorization failed: the session or uid key is invalid.","error_token":"NONE","extended":null,"error_code":102}}

С session key всё понятно. Это токен, необходимый для выполнений запроса. А вот uid — уникальный id пользователя, но почему между ними стоит «или»? В итоге вместо токена было решено подставить в урл id пользователя. Я очень удивился, когда сервер отдал мне все данные.

Уязвимость Мой Мир@Mail.Ru: слив фотографий и переписок - 2

Немного поэксперементировав, мне удалось вытащить диалоги и ссылки на фотографии пользователя (конечно, из своего аккаунта). Однако закрытые фотографии пользователя сервер отдает только при наличии куков. Эта проблема обходится переносом фото в открытый альбом.

Уязвимости подвержен и «Фотосейф». Облачный сервис хранения фотографий, основанный на закрытом альбоме в социальной сети. При активации он автоматически синхронизирует все фотографии с устройства и позиционируется как безопасный и удобный вариант хранения фото. На деле же особой популярностью эта функция не пользовалась.

Bug Bounty

23 января 2017 года, сразу после обнаружения уязвимости, я написал баг-репорт на площадке hackerone. В этот же день объявили о том, что с 24 января «Мой мир» больше не учавствует в баг баунти.

30 января мне выплатили награду в размере 800$

23 августа баг был закрыт.

Автор: рыцарь со стволом

Источник

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js