Pull to refresh

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

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



Воспользоваться уязвимостью можно было через 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 пользователя. Я очень удивился, когда сервер отдал мне все данные.



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

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

Bug Bounty


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

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

23 августа баг был закрыт.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.