Это удобно, когда на телефоне отображается твой баланс, оставшийся объем трафика, количество бесплатных минут и смс, курсы валют, твой банковский счет и многое другое.
Все это умеет отличная программа AnyBalance (Android), ну или ей подобные. Программа отправляет запросы с заданным интервалом на сервера Мегафона, МТС, Сбербанка (всего более 800 различных провайдеров) через вызовы сетевого API, а иногда и просто парсит вебстраничку личного кабинета, выдирая из нее нужные поля, которые затем отображаются на экране телефона в виде виджетов.
Мне было интересно посмотреть, как работают эти вызовы, и вот что я нашел.
name='more'>
Например, чтобы узнать баланс симки от Мегафона, виджет отправляет вот такой запрос:
https://kavkazsg.megafon.ru/ROBOTS/SC_TRAY_INFO?X_Username=<номер_телефона>&X_Password=<пароль>
В ответ сервер ей выдает страничку с информацией об аккаунте (без капчи, кстати).
Несмотря на то, что пароль и логин указаны в явном виде в URL, промежуточные узлы узнать их не смогут, так как полный URL будет инкапсулирован в зашифрованный пакет SSL.
Однако этот виджет, как и многие другие программы на мобильных телефонах, сегодня абсолютно не защищен от атаки с подменой https сертификата (MITM SSL).
Проще всего продемонстировать это с помощью Burp Suite .
Запускаем Burp Suite на ПК.
Устанавливаем в настройках телефона прокси для вайфай соединения (это чтобы не заморачиваться с перенаправлением мобильного трафика. В реальной жизни мы будем перехватывать трафик на роутере).
Обновляем виджет и любуемся на открытые пароли (ну то есть я на них любуюсь. У вас они замазаны красной ручкой).Burp налету подменил https сертификат Мегафона на свой собственный, и мы таким образом получили возможность видеть трафик в открытом виде.
Современные браузеры и правильно написанные клиентские программы этот трюк знают и тщательно проверяют всю цепочку сертификатов (а иногда и сам сертификат с помощью certificate pinning), но многие разработчики срезают углы и этого не делают (goto fail ;)).
Таким же образом можно подсмотреть логин и пароль на личный кабинет Сбербанка, если у вас стоит соответствующий виджет.
Неприятной особенностью виджетов является то, что обновляются они часто, используя для этого подвернувшийся вайфай, что увеличивает вероятность успешной атаки.
Поэтому задумайтесь о том, каким программам и какие пароли вы доверяете. Далеко не все из них умеют их безопасно хранить и правильно использовать.