This project demonstrates the exploitation of an insecure Broadcast Receiver in the IOT Connect Android application. The vulnerability allows an attacker to bypass authentication and trigger the master switch to control all connected IoT devices.
Exploit a Broadcast Receiver vulnerability to activate the master switch without proper authorization.
- Insecure Broadcast Receiver
- Improper Authorization
- Weak Cryptographic Validation
- The Broadcast Receiver is exported (
android:exported="true") - No permission protection is applied
- Sensitive functionality is exposed via broadcast
- PIN validation is performed client-side
- Weak encryption with a small key space (3-digit PIN)
An attacker can send a crafted broadcast intent to:
- Bypass authentication restrictions
- Activate the master switch
- Control all connected IoT devices
- Guest users cannot control all devices
- Master Switch requires a 3-digit PIN
Using JADX, the following was identified:
- Broadcast Receiver listens for:
MASTER_ON
- It expects an integer extra:
key
The application validates the PIN using AES decryption:
decrypt(ds, key).equals("master_on")Where:
ds = "OSnaALIWUkpOziVAMycaZQ=="- The key is derived from the user-provided PIN
- AES is used in ECB mode (insecure)
- Key is generated from a simple integer (PIN)
- Key space is small (100–999)
- Can be brute-forced easily
adb shell am broadcast -a MASTER_ON --ei key 345- Successfully triggered the master switch
- All IoT devices were activated
- Authentication mechanism bypassed
- JADX (Reverse Engineering)
- ADB (Exploitation)
- Android Emulator / Nox
- Python (for analysis)
Add your screenshots here:
screenshots/login.png
screenshots/jadx.png
screenshots/exploit.png
- Set
android:exported="false"for sensitive receivers - Use permission-based protection
- Avoid client-side validation for critical operations
- Use secure cryptographic practices
- Implement server-side verification
This lab highlights the risks of exposing internal components and relying on weak client-side validation. Proper access control and secure coding practices are essential to protect IoT systems from unauthorized access.