Атакующий широковещательный приемник (Broadcast Receiver):
Широковещательный приемник – это компонент системы Андроид, который позволяет вам зарегистрироваться для событий системы или приложений. Мы настоятельно рекомендуем прочитать Тестирование на проникновение Андроид
Ссылка скрыта от гостей
для детального ознакомления с широковещательным приемникомДавайте рассмотрим манифест андроида
Широковещательные приемники, в основном, регистрируются в следующем формате. Как мы можем видеть из файла манифеста андроида, экспортированное значение = True (exported value = True) для трансляции.
Кажется, что код небезопасен, т.к. приемник экспортированный.
Параметры, которые переходят к широковещательному приемнику, можно увидеть на ниже приведенном рисунке.
Цель состоит в том, чтобы отправить поддельные трансляции и посмотреть, принимает ли приложение их. Если да, мы будем использовать приложение для отправки SMS на некоторые случайные мобильные номера, используя фальшивые трансляции.
Атака уязвимых широковещательных приемников
Защита приложений
Атака уязвимых широковещательных приемников
Давайте попробуем отправить некоторые поддельные трансляции этому получателю.
Использование инструмента am доступно в adb
Использование adb
1. Получите оболочку adb на устройстве и введите следующую команду для отправки поддельной трансляции.
2. Вернитесь в папку «platform-tools» и введите следующую команду:
Код:
. /adb shell
Код:
am broadcast -a theBroadcast -n com.android.insecurebankv2/com.android.insecurebankv2.MyBroadCastReceiver –es phonenumber 5554 –es newpass Dinesh@123!
Теперь широковещательное событие отправляется в фоновом режиме, и поскольку приложение не проверяет исходный источник, на эмулятор-5554 будет отправлено SMS без вмешательства пользователя.
Давайте рассмотрим, как мы можем защитить приложение-
Защита приложений:
- Установка Fндроида: экспортированное значение атрибута - false
Ограничение доступа к разрешениям пользователей.
Мы также можем вводить ограничения на основе разрешений, определяя пользовательские разрешения для каждого получателя. Это полезно, если разработчик хочет ограничить доступ к компонентам своего приложения тем приложениям, у которых есть разрешения.
Это является причиной, почему нам нужно определить “android.permission.RECEIVE_SMS” разрешение в файле AndroidManifest.xml, если какое-либо приложение хочет прослушать событие получения SMS, используя действие «android.provider.Telephony.SMS_RECEIVED».
Источник:
Ссылка скрыта от гостей