На фоне новостей об утечке персональных данных из 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 августа баг был закрыт.
Автор: рыцарь со стволом