04 Mobile Security
Welcome to:
Module 04 — Mobile Security
In the previous module, you learned how modern applications expose functionality through:
APIs
Objects
Tokens
Roles
Business LogicNow you will extend that knowledge into:
Mobile ApplicationsMobile applications introduce a different attack surface because security logic may exist across:
Mobile Client
Device Storage
Application Package
Operating System
Network Traffic
Backend APIs
Cloud ServicesA mobile application is rarely just:
An Appon a PhoneIt is more accurately:
Mobile Client ↓Authentication ↓API ↓Backend Services ↓Cloud InfrastructureFor a Bug Bounty Hunter, this creates an important principle:
Do Not TestOnly the App
Understand theEntire MobileApplication EcosystemModule Objectives
Section titled “Module Objectives”By the end of this module, you will understand how to:
-
explain modern mobile application architecture.
-
understand Android and iOS application models.
-
identify mobile application attack surfaces.
-
understand mobile application packages.
-
inspect application configuration.
-
understand local storage risks.
-
analyze sensitive data stored on devices.
-
understand mobile authentication flows.
-
analyze session and token storage.
-
understand mobile API communication.
-
inspect network traffic.
-
understand certificate validation concepts.
-
identify insecure WebView usage.
-
analyze deep links.
-
understand custom URL schemes.
-
identify exported Android components.
-
understand Android permissions.
-
understand activities, services, receivers and providers.
-
understand iOS application configuration.
-
analyze application logs.
-
understand clipboard-related risks.
-
analyze screenshots and cached data.
-
understand biometric authentication concepts.
-
identify insecure client-side trust.
-
test mobile authorization through APIs.
-
identify mobile-specific business logic issues.
-
assess application updates and versioning.
-
understand hardcoded secrets.
-
analyze mobile application assets.
-
understand third-party SDK risks.
-
identify privacy-related mobile security concerns.
-
gather mobile evidence.
-
create a mobile security testing methodology.
-
write professional mobile vulnerability reports.
1 — What Is Mobile Application Security?
Section titled “1 — What Is Mobile Application Security?”Mobile application security examines the security of:
Mobile Application
Device Interaction
Local Storage
Authentication
Network Communication
Backend APIsA vulnerability may exist:
Inside the Appor:
Behind the Appon the API or backend.
2 — Mobile Application Architecture
Section titled “2 — Mobile Application Architecture”A simplified mobile architecture:
Mobile App ↓HTTPS ↓API Gateway ↓Backend Service ↓DatabaseAdditional components may include:
Identity Provider
Push Notifications
Analytics
Cloud Storage
Third-Party SDKs3 — Mobile Client Is Not Trusted
Section titled “3 — Mobile Client Is Not Trusted”One of the most important principles is:
Mobile Client ≠Trusted EnvironmentUsers control:
The Device
Application Files
Network Environment
Application StateTherefore critical security controls should not depend only on the mobile application.
4 — Android vs iOS
Section titled “4 — Android vs iOS”The two dominant mobile platforms are:
Android
iOSTheir security architecture differs.
However, both applications commonly expose similar security areas:
Local Data
Authentication
Network
APIs
Deep Links
Application Configuration5 — Mobile Attack Surface
Section titled “5 — Mobile Attack Surface”Build your mobile attack surface around:
Application Package
Configuration
Local Storage
Logs
Clipboard
Deep Links
WebViews
Network Traffic
Authentication
Tokens
APIs
Third-Party SDKs6 — Application Package
Section titled “6 — Application Package”Android applications are commonly distributed as:
APKor application bundles.
iOS applications use:
IPApackages.
These packages can reveal:
Application Code
Resources
Configuration
Endpoints
Libraries
Permissions7 — Static Analysis
Section titled “7 — Static Analysis”Static analysis means examining the application without executing it.
Potential areas:
Manifest
Configuration
Strings
Resources
Libraries
Certificates
Code8 — Dynamic Analysis
Section titled “8 — Dynamic Analysis”Dynamic analysis examines application behavior while it is running.
You may observe:
Network Requests
Files
Logs
Authentication
Storage
Application State9 — Android Manifest
Section titled “9 — Android Manifest”Android applications contain configuration in:
AndroidManifest.xmlThis may reveal:
Permissions
Activities
Services
Broadcast Receivers
Content Providers
Deep Links10 — Android Permissions
Section titled “10 — Android Permissions”Applications may request access to:
Camera
Microphone
Location
Contacts
Storage
BluetoothAsk:
Does the AppNeed This Permission?Excessive permissions can increase risk.
11 — Exported Components
Section titled “11 — Exported Components”Android components may be:
Exportedmeaning other applications may potentially interact with them.
Important components include:
Activities
Services
Broadcast Receivers
Content Providers12 — Exported Activity
Section titled “12 — Exported Activity”Ask:
Can AnotherApplication LaunchThis Activity?Then:
Does the ActivityPerform SensitiveActions?13 — Exported Service
Section titled “13 — Exported Service”A service may perform background operations.
Security questions include:
Can It BeInvoked Externally?
Does ItRequire Permission?
Does It PerformSensitive Functions?14 — Broadcast Receivers
Section titled “14 — Broadcast Receivers”Broadcast receivers process system or application messages.
Ask:
Can Untrusted AppsSend Messagesto This Receiver?15 — Content Providers
Section titled “15 — Content Providers”Content providers expose structured application data.
Questions include:
Is Provider Exported?
Does It RequirePermission?
Can Another AppRead or Modify Data?16 — iOS Application Configuration
Section titled “16 — iOS Application Configuration”iOS applications may contain configuration such as:
Info.plistwhich can reveal:
URL Schemes
Permissions
Application Settings
Transport SecurityConfiguration17 — Mobile Configuration Files
Section titled “17 — Mobile Configuration Files”Configuration files can expose:
API Hosts
Environment Names
Feature Flags
Analytics IDs
Third-Party ServicesThe presence of values does not automatically make them sensitive.
Assess their security role.
18 — Hardcoded Secrets
Section titled “18 — Hardcoded Secrets”Applications sometimes contain:
API Keys
Tokens
Passwords
Private Credentialsinside application code or configuration.
The key question is:
Does This SecretGrant UnauthorizedAccess?19 — Public vs Sensitive API Keys
Section titled “19 — Public vs Sensitive API Keys”Some keys are intended to be:
Public ClientIdentifiersOthers may grant privileged access.
Do not classify every embedded key as a vulnerability.
Validate:
Purpose
Permissions
Scope
Impact20 — String Analysis
Section titled “20 — String Analysis”Application strings may reveal:
API Endpoints
Development Hosts
Error Messages
Feature Names
Cloud ServicesThis is useful for reconnaissance.
21 — Local Storage
Section titled “21 — Local Storage”Mobile applications frequently store data locally.
Potential locations include:
Files
Preferences
Databases
Caches
Keychain / Keystore22 — Sensitive Local Data
Section titled “22 — Sensitive Local Data”Examples include:
Access Tokens
Refresh Tokens
User Information
Session Data
Payment Information
Application SecretsAsk:
Should This DataBe Stored Here?
Is ItProtected?23 — Android Shared Preferences
Section titled “23 — Android Shared Preferences”Applications may store preferences using:
SharedPreferencesThese can contain:
Settings
Tokens
Application StateSensitive values should receive appropriate protection.
24 — SQLite Databases
Section titled “24 — SQLite Databases”Mobile apps may use local databases.
Inspect for:
Personal Data
Tokens
Messages
Application RecordsThe security impact depends on:
Data Sensitivity
Device Threat Model
Protection25 — Cache Data
Section titled “25 — Cache Data”Applications may cache:
Images
Documents
API Responses
User InformationSensitive content should not remain unnecessarily exposed.
26 — iOS Keychain
Section titled “26 — iOS Keychain”The iOS Keychain provides storage designed for sensitive values.
Applications may use it for:
Tokens
Credentials
Cryptographic MaterialBut implementation choices still matter.
27 — Android Keystore
Section titled “27 — Android Keystore”Android provides:
Android Keystorefor securely managing cryptographic keys.
Do not assume a key is protected merely because the application mentions the Keystore.
Validate architecture and usage.
28 — Authentication in Mobile Apps
Section titled “28 — Authentication in Mobile Apps”Mobile authentication may involve:
Password
MFA
OAuth
SSO
Biometrics
Magic LinksOften the mobile client ultimately receives:
Access Token29 — Mobile Authentication Flow
Section titled “29 — Mobile Authentication Flow”Conceptually:
Credentials ↓Identity Provider ↓Token ↓Mobile Application ↓API30 — Token Storage
Section titled “30 — Token Storage”Ask:
Where Isthe Access TokenStored?
Where Isthe Refresh TokenStored?Token storage is important because:
Token TheftMay EqualSession Theft31 — Token Lifecycle
Section titled “31 — Token Lifecycle”Review:
Creation
Expiration
Refresh
Logout
Password Change
Revocation32 — Logout
Section titled “32 — Logout”After logout:
Does theOld TokenStill Work?A client removing a token from its screen does not necessarily mean:
ServerInvalidated It33 — Password Change
Section titled “33 — Password Change”Ask:
Does PasswordChange RevokeMobile Sessions?34 — Biometric Authentication
Section titled “34 — Biometric Authentication”Biometric controls such as:
Fingerprint
Face Recognitionmay protect access to application functionality.
The key question is:
What DoesBiometric SuccessActually Unlock?35 — Client-Side Biometric Trust
Section titled “35 — Client-Side Biometric Trust”If the application simply performs:
Biometric Success ↓Set Local Flag ↓Show Protected Screenwithout backend validation for sensitive operations, security may rely too heavily on client state.
36 — Network Traffic
Section titled “36 — Network Traffic”Mobile apps communicate with APIs through:
HTTP / HTTPSInspect traffic to understand:
Hosts
Endpoints
Headers
Tokens
Parameters
Responses37 — HTTPS
Section titled “37 — HTTPS”Mobile applications should generally use:
HTTPSto protect data in transit.
Look for:
Cleartext Traffic
Weak Transport Settings
Sensitive Datain URLs38 — Sensitive Data in URL
Section titled “38 — Sensitive Data in URL”Example:
/reset?token=secret-tokenURLs may appear in:
Logs
History
Analytics
ProxiesSensitive values should be carefully handled.
39 — Certificate Validation
Section titled “39 — Certificate Validation”Mobile applications should validate server certificates appropriately.
Conceptually:
Application ↓TLS Certificate ↓Trusted? ↓ConnectionWeak validation can increase interception risk.
40 — Certificate Pinning
Section titled “40 — Certificate Pinning”Some applications implement:
CertificatePinningto restrict which certificates the app trusts.
Its existence does not mean the entire application is secure.
41 — Network Security Configuration
Section titled “41 — Network Security Configuration”Android applications can define transport behavior through:
Network SecurityConfigurationReview whether cleartext traffic is allowed where it should not be.
42 — WebViews
Section titled “42 — WebViews”A WebView allows an application to display web content inside the mobile app.
Potential security areas include:
JavaScript
URL Handling
Navigation
File Access
Native Bridges43 — WebView Trust
Section titled “43 — WebView Trust”Ask:
What ContentCan the WebView Load?and:
Can UntrustedContent Interactwith Native Functions?44 — JavaScript Interfaces
Section titled “44 — JavaScript Interfaces”Some WebViews expose native application functions to JavaScript.
If untrusted content can reach those interfaces, security risk may increase.
Validate only in authorized labs.
45 — Deep Links
Section titled “45 — Deep Links”Deep links allow URLs to open specific application functionality.
Example:
myapp://profile/1001or:
https://app.example.com/profile/100146 — Deep Link Attack Surface
Section titled “46 — Deep Link Attack Surface”Ask:
Can AnyoneTrigger the Link?
What ParametersCan Be Controlled?
Does AuthenticationApply?
Does AuthorizationApply?47 — Custom URL Schemes
Section titled “47 — Custom URL Schemes”Applications may register schemes such as:
cloudnova://Potential issues may arise if:
Multiple AppsCan RegisterSimilar Schemesor sensitive data is passed through the URL.
48 — Universal Links / App Links
Section titled “48 — Universal Links / App Links”Modern platforms support verified links that bind web domains to applications.
These can improve security compared with unrestricted custom schemes, but implementation still requires testing.
49 — Deep Link Authorization
Section titled “49 — Deep Link Authorization”Suppose:
myapp://invoice/5001opens an invoice.
The critical question is:
Does theBackend Verifythe User CanAccess Invoice 5001?Deep-link obscurity is not authorization.
50 — Mobile API Security
Section titled “50 — Mobile API Security”Most mobile security testing eventually returns to:
API SecurityThe mobile application may expose:
Additional Endpoints
Different API Versions
Mobile-Specific Functions51 — Compare Mobile and Web APIs
Section titled “51 — Compare Mobile and Web APIs”Create:
Mobile API
vs
Web APICompare:
Endpoints
Methods
Tokens
Fields
Authorization
Versions52 — Mobile API Authorization
Section titled “52 — Mobile API Authorization”Use controlled accounts to test:
Object Access
Function Access
Role Boundaries
Property Updatesjust as you would with web APIs.
53 — Hidden Mobile Endpoints
Section titled “53 — Hidden Mobile Endpoints”Mobile apps may contain:
Legacy API Routes
Development Routes
Feature Flags
Internal FunctionsDiscovery does not automatically mean the route is vulnerable.
Validate authentication and authorization.
54 — Application Logs
Section titled “54 — Application Logs”Applications may accidentally log:
Tokens
Passwords
Personal Data
API Responses
Debug Information55 — Debug Logging
Section titled “55 — Debug Logging”Development builds may include verbose logging.
Determine whether production builds expose sensitive information.
56 — Clipboard
Section titled “56 — Clipboard”Applications may place data onto the system clipboard.
Examples:
OTP
Account Number
Recovery Code
TokenClipboard contents may be accessible to other applications depending on platform protections.
57 — Screenshots
Section titled “57 — Screenshots”Mobile operating systems may capture application screens for:
App Switching
Recent AppsSensitive screens may require additional protection in certain applications.
58 — Keyboard and Input
Section titled “58 — Keyboard and Input”Sensitive inputs may interact with:
Autofill
Keyboard Suggestions
Clipboard
AccessibilityThreat relevance depends on the application.
59 — Backup
Section titled “59 — Backup”Mobile application data may be included in:
Device BackupsApplications handling sensitive information should consider whether data should be backed up.
60 — Android Backup Configuration
Section titled “60 — Android Backup Configuration”Review whether the application allows backup of:
SensitiveApplication Datawhere inappropriate.
61 — Rooted and Jailbroken Devices
Section titled “61 — Rooted and Jailbroken Devices”A rooted Android or jailbroken iOS device can weaken platform security boundaries.
But:
App Runson Rooted Device ≠Automatic VulnerabilityImpact depends on the application’s threat model.
62 — Root Detection
Section titled “62 — Root Detection”Some applications attempt:
Root Detection
Jailbreak DetectionThese controls can increase difficulty for attackers but should not replace backend security.
63 — Client Integrity
Section titled “63 — Client Integrity”Never rely only on:
App IsUnmodifiedfor high-value authorization.
Attackers can potentially modify their own client.
64 — Reverse Engineering
Section titled “64 — Reverse Engineering”Mobile packages can often be inspected.
Therefore sensitive logic such as:
Secrets
Authorization Rules
Security Decisionsshould not depend on being hidden.
65 — Obfuscation
Section titled “65 — Obfuscation”Code obfuscation can make reverse engineering harder.
But:
Obfuscation ≠Security Controlfor authorization or secret protection.
66 — Hardcoded Backend URLs
Section titled “66 — Hardcoded Backend URLs”A mobile app might reveal:
api.example.com
staging-api.example.com
dev-api.example.comDo not test non-production environments unless explicitly authorized.
67 — Environment Configuration
Section titled “67 — Environment Configuration”Applications may include:
Production
Staging
Developmentconfiguration.
Scope must still determine what can be tested.
68 — Third-Party SDKs
Section titled “68 — Third-Party SDKs”Mobile apps frequently integrate SDKs for:
Analytics
Advertising
Payments
Crash Reporting
AuthenticationSDKs can affect:
Privacy
Network Traffic
Data Collection
Application Security69 — Third-Party Data Sharing
Section titled “69 — Third-Party Data Sharing”Ask:
What DataIs Sentto Third Parties?Potential information may include:
Device Identifiers
User Information
Usage Data
Location70 — Privacy and Security
Section titled “70 — Privacy and Security”Privacy issues and security issues can overlap.
Examples:
Sensitive DataSent to Analytics
Location CollectedWithout Need
Personal DataLoggedAssess according to program scope.
71 — Push Notifications
Section titled “71 — Push Notifications”Applications may use push notifications for:
Messages
OTP
Approvals
AlertsSensitive information displayed in notifications may be visible on locked devices depending on configuration.
72 — Notification Actions
Section titled “72 — Notification Actions”Some notifications allow:
Approve
Reply
OpenReview whether sensitive actions require appropriate authentication.
73 — Local Authorization vs Server Authorization
Section titled “73 — Local Authorization vs Server Authorization”Suppose the mobile app hides a premium feature.
Ask:
Does theAPI EnforcePremium Access?not:
Does the AppHide the Button?74 — Client-Side Role Flag
Section titled “74 — Client-Side Role Flag”Example local state:
{ "role": "user", "premium": false}Modifying local state should not grant backend privileges.
75 — Mobile Business Logic
Section titled “75 — Mobile Business Logic”Mobile-specific workflows may include:
Device Registration
QR Login
OTP
Referral
Wallet
Payment
Location-Based FeaturesTest the entire workflow, not only screens.
76 — Device Registration
Section titled “76 — Device Registration”Some applications bind accounts to:
Device IDs
Push Tokens
Installation IDsAsk:
Can DeviceRegistrationBe Manipulated?
Can Old DevicesRemain Trusted?77 — OTP Workflows
Section titled “77 — OTP Workflows”OTP workflows may involve:
Request OTP ↓Receive OTP ↓Verify OTP ↓Create SessionTest:
Expiry
Reuse
Account Binding
Rate Limitswithin authorized limits.
78 — Mobile Account Recovery
Section titled “78 — Mobile Account Recovery”Review:
Email Recovery
SMS Recovery
Device Recovery
Backup Codes
Support RecoveryRecovery paths can sometimes be weaker than primary authentication.
79 — QR Authentication
Section titled “79 — QR Authentication”Some apps allow authentication through QR codes.
Security questions may include:
Is QR TokenSingle Use?
Does It Expire?
Is It Boundto Session?
Does UserConfirm Context?80 — Application State
Section titled “80 — Application State”Mobile applications may remain:
Logged Infor long periods.
Test:
Session Expiry
Password Change
Account Disablement
Token Revocation81 — Offline Functionality
Section titled “81 — Offline Functionality”Some mobile apps support offline behavior.
Ask:
What DataIs Cached?
Which ActionsCan Occur Offline?
How Are TheyValidated Later?82 — Local Business Logic
Section titled “82 — Local Business Logic”Do not assume an action is secure because:
Mobile UIPrevents ItIf the server eventually accepts the request, backend logic is what matters.
83 — Application Update Security
Section titled “83 — Application Update Security”Mobile applications are updated frequently.
Changes can introduce:
New APIs
New Features
New Permissions
New Deep LinksChange-based hunting can be useful.
84 — Version Comparison
Section titled “84 — Version Comparison”Compare:
Old Version
New Versionfor:
Endpoints
Permissions
Features
Configuration85 — Deprecated APIs
Section titled “85 — Deprecated APIs”Older application versions may use:
Legacy APIsIf those services remain active, assess whether they are within authorized scope and whether security controls differ.
86 — Emulator vs Physical Device
Section titled “86 — Emulator vs Physical Device”Testing may use:
Emulator
Simulator
Physical Devicedepending on the application and testing goals.
87 — Mobile Testing Environment
Section titled “87 — Mobile Testing Environment”A professional environment may include:
Dedicated Test Device
Controlled Accounts
Intercepting Proxy
Application Analysis Tools
Research Notes88 — Research Accounts
Section titled “88 — Research Accounts”Use:
Account A
Account Bfor authorization testing.
This remains one of the safest ways to demonstrate:
Cross-AccountAccess89 — Mobile Evidence
Section titled “89 — Mobile Evidence”For mobile findings collect:
App Version
Device / OS
Account Role
Request
Response
Application State
Screenshots
Relevant Configuration90 — Mobile Finding Reproducibility
Section titled “90 — Mobile Finding Reproducibility”Another researcher should be able to understand:
Which App Version?
Which Device State?
Which Account?
Which Action?
Which API Request?
What Result?91 — Mobile Security Notebook
Section titled “91 — Mobile Security Notebook”Create:
Mobile_Security_Notebook.mdwith:
# Application
# Version
# Platform
# Package
# Permissions
# Components
# Configuration
# Local Storage
# Authentication
# Tokens
# Deep Links
# WebViews
# APIs
# Network
# Business Logic
# Vulnerability Candidates
# Evidence
# Reports92 — Mobile Attack Surface Register
Section titled “92 — Mobile Attack Surface Register”Create:
Mobile_Attack_Surface.csvwith:
| Component | Type | Exposure | Security Relevance | Status |
|---|
93 — Local Storage Register
Section titled “93 — Local Storage Register”Create:
Mobile_Local_Storage.csvwith:
| Data | Location | Sensitive? | Protection | Assessment |
|---|
94 — Component Register
Section titled “94 — Component Register”For Android create:
Android_Component_Register.csvwith:
| Component | Type | Exported | Permission | Purpose |
|---|
95 — Deep Link Register
Section titled “95 — Deep Link Register”Create:
Deep_Link_Register.csvwith:
| Link | Function | Authentication | Parameters | Assessment |
|---|
96 — Mobile API Register
Section titled “96 — Mobile API Register”Create:
Mobile_API_Register.csvwith:
| Endpoint | Method | Token | Object | Function |
|---|
97 — Mobile Token Register
Section titled “97 — Mobile Token Register”Create:
Mobile_Token_Lifecycle.csvwith:
| Token | Created | Stored | Expires | Revoked | Notes |
|---|
98 — Vulnerability Candidate Register
Section titled “98 — Vulnerability Candidate Register”Create:
Mobile_Vulnerability_Candidates.csvwith:
| Candidate | Component | Evidence | Impact | Status |
|---|
99 — Mobile Security Testing Workflow
Section titled “99 — Mobile Security Testing Workflow”Use:
Understand App ↓Inspect Package ↓Review Configuration ↓Map Components ↓Review Storage ↓Analyze Authentication ↓Inspect Traffic ↓Map APIs ↓Test Authorization ↓Test Deep Links ↓Test Business Logic ↓Validate ↓Report100 — Think in Client vs Server
Section titled “100 — Think in Client vs Server”Always separate:
Mobile Clientfrom:
ServerAsk:
Which SecurityDecision HappensWhere?101 — Example
Section titled “101 — Example”App contains:
if premium: show_feature()This controls:
UIbut the security question is:
Does APIRequire PremiumAuthorization?102 — Think in Data
Section titled “102 — Think in Data”Ask:
What DataExists on Device?
What DataLeaves the Device?
What DataComes Back?
What DataShould This UserAccess?103 — Think in Entry Points
Section titled “103 — Think in Entry Points”Mobile entry points may include:
App Icon
Deep Link
Push Notification
Share Intent
Exported Activity
WebView104 — Think in Trust Boundaries
Section titled “104 — Think in Trust Boundaries”Common trust boundaries:
Other App ↓Mobile App
Browser ↓Deep Link
Mobile App ↓API
Web Content ↓WebView105 — Think in Session State
Section titled “105 — Think in Session State”Ask:
What HappensAfter Logout?
Password Change?
MFA Reset?
Device Removal?
Account Disablement?106 — Think in Backend Authorization
Section titled “106 — Think in Backend Authorization”No matter how sophisticated the mobile application becomes:
BackendMust StillAuthorize RequestsPractical Exercise 1 — Map a Mobile Application
Section titled “Practical Exercise 1 — Map a Mobile Application”Using an authorized mobile training application, create:
Mobile_Attack_Surface.mdcovering:
Package
Permissions
Storage
Authentication
Deep Links
WebViews
Network
APIsPractical Exercise 2 — Application Configuration Review
Section titled “Practical Exercise 2 — Application Configuration Review”Document:
Application ID
Version
Permissions
Deep Links
API Hosts
Third-Party SDKsPractical Exercise 3 — Local Storage Assessment
Section titled “Practical Exercise 3 — Local Storage Assessment”Identify application-controlled:
Preferences
Files
Databases
Cachesand classify stored information as:
Sensitive
Non-Sensitive
Needs ReviewPractical Exercise 4 — Token Lifecycle
Section titled “Practical Exercise 4 — Token Lifecycle”Using a training application:
Login ↓Capture Token ↓Logout ↓Test ExpectedRevocation BehaviorDocument results.
Practical Exercise 5 — Password Change Session Test
Section titled “Practical Exercise 5 — Password Change Session Test”Using your own training account:
Login onDevice A
↓
Change Password
↓
Observe Device ASession BehaviorPractical Exercise 6 — Deep Link Mapping
Section titled “Practical Exercise 6 — Deep Link Mapping”Identify training-app deep links and document:
Function
Parameters
Authentication
AuthorizationPractical Exercise 7 — Android Component Review
Section titled “Practical Exercise 7 — Android Component Review”For an authorized Android lab, identify:
Activities
Services
Receivers
Providersand document which are exported.
Practical Exercise 8 — Mobile API Mapping
Section titled “Practical Exercise 8 — Mobile API Mapping”Capture at least:
15 APIRequestsfrom a training application.
Document:
Endpoint
Method
Authentication
Object
ResponsePractical Exercise 9 — Two-Account Authorization Test
Section titled “Practical Exercise 9 — Two-Account Authorization Test”Using your own mobile test accounts:
Account ACreates Object
Account BAttempts AccessValidate backend authorization.
Practical Exercise 10 — WebView Review
Section titled “Practical Exercise 10 — WebView Review”In an authorized lab, document:
Loaded Origins
JavaScript Enabled?
Navigation Controls
Native InterfacesPractical Exercise 11 — Hardcoded Value Assessment
Section titled “Practical Exercise 11 — Hardcoded Value Assessment”Identify application strings that resemble:
API Keys
Tokens
EndpointsClassify each as:
Public Identifier
Unknown
Sensitiveand validate before reporting.
Practical Exercise 12 — Write a Mobile Vulnerability Report
Section titled “Practical Exercise 12 — Write a Mobile Vulnerability Report”Create a fictional report for:
Deep LinkAuthorization FailureInclude:
Application Version
Platform
Account Roles
Deep Link
API Request
Evidence
Impact
RemediationKnowledge Check
Section titled “Knowledge Check”-
What is mobile application security?
-
Why should mobile applications be treated as untrusted clients?
-
What is an APK?
-
What is an IPA?
-
What is static analysis?
-
What is dynamic analysis?
-
What information can AndroidManifest.xml reveal?
-
What are Android permissions?
-
What is an exported component?
-
What is an Android activity?
-
What is a service?
-
What is a broadcast receiver?
-
What is a content provider?
-
What information can Info.plist reveal?
-
Why are hardcoded values not automatically vulnerabilities?
-
What makes a hardcoded secret security-sensitive?
-
What is local storage?
-
What sensitive data may exist locally?
-
What is SharedPreferences?
-
What is the iOS Keychain?
-
What is the Android Keystore?
-
Why is token storage important?
-
What should happen to tokens after logout?
-
Why should password changes be tested against existing sessions?
-
What is biometric authentication?
-
Why should sensitive authorization not depend only on biometric client state?
-
What does mobile network analysis reveal?
-
Why is HTTPS important?
-
Why can sensitive data in URLs be risky?
-
What is certificate validation?
-
What is certificate pinning?
-
What is a WebView?
-
Why can WebViews create security risks?
-
What is a deep link?
-
What is a custom URL scheme?
-
Why must deep-linked resources still enforce backend authorization?
-
Why should mobile and web APIs be compared?
-
What are application logs?
-
Why can clipboard use create risk?
-
Why can screenshots expose information?
-
Why is running on a rooted device not automatically a vulnerability?
-
Why is obfuscation not an authorization control?
-
What are third-party SDKs?
-
How can third-party SDKs affect privacy?
-
What security questions apply to push notifications?
-
What is client-side role enforcement?
-
Why should mobile business logic be tested server-side?
-
What should be reviewed in OTP workflows?
-
Why should mobile application versions be compared?
-
What should a professional mobile vulnerability report contain?
Key Takeaways
Section titled “Key Takeaways”Mobile security requires understanding:
Client
Device
Storage
Authentication
Tokens
Network
APIs
BackendRemember:
Mobile App ≠Trusted ClientHidden Mobile Feature ≠AuthorizationHardcoded Key ≠AutomaticallySensitive SecretBiometric Success ≠Backend AuthorizationDeep Link ≠AuthorizationObfuscation ≠Security BoundaryThe professional methodology is:
Package ↓Configuration ↓Components ↓Storage ↓Authentication ↓Network ↓API ↓Authorization ↓Business Logic ↓Evidence ↓ReportCareer Connection
Section titled “Career Connection”Mobile security skills are useful for:
Bug Bounty Hunters
Mobile Security Researchers
Application Security Analysts
Mobile Penetration Testers
API Security Analysts
AppSec EngineersDuring interviews, you should be able to explain:
How YouMap a MobileAttack Surface
How YouAnalyze ApplicationConfiguration
How YouReview Local Storage
How YouAnalyze Tokens
How YouInspect Network Traffic
How YouTest Deep Links
How YouTest Mobile APIs
How YouSeparate Clientand Server SecurityInstead of saying:
I TestAndroid Appsyou should be able to explain:
I begin by mappingthe mobile application'spackage, configuration,permissions, entry points,local storage andnetwork communication.
I then identify theauthentication and tokenmodel, inspect the APIsused by the client andvalidate authorizationusing controlled accounts.
I review deep links,WebViews and exposedmobile components whileseparating client-sidebehavior from backendsecurity enforcement.
Finally, I validatesecurity impact anddocument reproducibleevidence.What’s Next?
Section titled “What’s Next?”➡️ Next: 05 — Advanced Web Exploitation
You now understand the primary attack surfaces across:
Web
APIs
MobileThe next module moves into more complex web attack scenarios where vulnerabilities often emerge from:
Interactions
Trust Boundaries
Application State
Multiple Requests
Backend ArchitectureYou will learn about advanced concepts involving:
Advanced Access Control
Authentication Chains
Advanced SSRF
Request Smuggling Concepts
Web Cache Issues
Race Conditions
Advanced Business Logic
Complex Authorization
Vulnerability ChainingYou will move from:
TestingIndividualVulnerability Classesto:
UnderstandingAttack PathsAcross MultipleApplication Componentsusing:
Weakness ↓Trust Boundary ↓Second Weakness ↓Attack Path ↓Business Impact➡️ Next: 05 — Advanced Web Exploitation