По прошествии времени, мы решили проверить, насколько Мегафон заботится о безопасности личных данных своих клиентов, и провели небольшое тестирование продуктов авторизации в «сервис-гид». Результат не увенчался успехом, Мегафон действительно исправил ошибку, в которую их тыкнуло хабро сообщество, но пойти дальше и проверить всю систему они почему-то не решились.
Не буду повторяться, что можно сделать со счетом абонента имея доступ в «сервис-гид» (см. статью) перейду сразу к сладкому.
Как показал анализ, в Мегафоне, существует внутренний гейт, с которым соединятся и messages.megafon.ru, moscowsg.megafon.ru и многие другие приложение для авторизации абонентов. Используя мобильные приложения «UMS» и «Мегафон Диск» можно подбирать пароли с высокой скоростью за счет отсутствия необходимости в проведении полной процедуры аутентификации.
Об этой проблеме было отправлено письмо в службу технической поддержки абонентов Мегафон несколько недель назад, но как не странно она не отреагировала на наше письмо. На момент 11 декабря нечего не исправлено.
Для анализа трафика мобильного приложения используем зло mitmproxy
А теперь подробнее о каждом.
«UMS»
Пример HTTP запроса и ответов при авторизации
Request: POST https://auth.messages.megafon.ru:15020/tellin/login.do Host: auth.messages.megafon.ru:15020 x-UserAgent: iPhone|iPhone0.0|iPhone OS 0.0.0|0.0.0.0|aVBob25lIDRT|aVBob25l Accept-Encoding: gzip Content-Type: text/xml;UTF-8 Accept-Language: zh-CN,en,* Cookie: JSESSIONID=000000000000000000000000 Content-Length: 344 Connection: close Proxy-Connection: close User-Agent: UMS 0.0.0.0 (iPhone; iPhone OS 0.0.0; ru_RU) XML-like data <?xml version='1.0' encoding='UTF-8'?> <root> <user>+7926000000</user> <random>HUAWEI RCS0000-00-00</random> <secinfo>мойкрутойпароль</secinfo> <version>0.0.0.0</version> <clienttype>2010000</clienttype> <pintype>0</pintype> <requestip>653.289.953.846</requestip> <usertype>0</usertype> <deviceID>NvQPSFL3nclMuRJbc8KjjgIBn6CVg49mpzNZoJ4LK0n2OQDpcEENuly9FVK5</deviceID> </root> 1) Успешная авторизация Response: Raw [ base64 длинной 3680 байт ] 2) Ошибка авторизации Response: <root><return>200050401</return><desc>The user information is incorrect.</desc></root>
«MegaDisk»
Пример HTTP запроса и ответов при авторизации
Request: POST https://oauth.megafon.ru/login?oauth_token=92cd604414ba74ff7a3e Host: oauth.megafon.ru Accept-Language: ru User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 0_0_0 like Mac OS X) AppleWebKit/0.0.0 (KHTML, like Gecko) Mobile/0B Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Referer: https://oauth.megafon.ru/login Content-Type: application/x-www-form-urlencoded Connection: keep-alive Proxy-Connection: keep-alive Cookie: ID=IGmYDY6caHVX\nsFELs55iR7wPyhSMvQHc Content-Length: 141 Origin: https://oauth.megafon.ru Accept-Encoding: gzip, deflate URLEncoded form version: 1 token: HkyOryj8L0nAsL7AMgd2JjqjaO language: ru validateform: QR3g4qMeSF0tPHT9COXCKD4guGeYdwHGFBgrPi1eHr msisdn: 7926000000 p: мойкрутойпароль login: LoginRU 1) Успешная авторизация Response: HTTP код 302 2) Ошибка авторизации HTTP код не 302
Проблемы в этих приложениях две:
- Получая информацию об успешной верификации пары номера телефона и пароля мы не продолжаем дальнейшую авторизацию и тем самым не идет SMS информирование абонента об авторизации в UMS
- По умолчанию в UMS отключено SMS информирование при авторизации через мобильное устройство
Варианты решения:
- Использовать шифрование на первом этапе авторизации
- Показывать капчу
- Отправление SMS уведомление при попытки авторизации
- Использование буквенных паролей
Проверки осуществлял используя в качестве цели свой собственный номер телефона.
ссылка на оригинал статьи http://habrahabr.ru/post/205594/
Добавить комментарий