
Deep Links Hacking
Resources
Types of Deep Links

1. Deep Links

Definition: Handles URIs in the form of scheme://authority/path.
Scheme: Can be standard (e.g.,
http,https) or custom (e.g.,app://).Authority: Should have a domain structure to clarify ownership.
Path: Directs the user to a particular activity based on app logic.
Example:
Here, the “DeepLinkActivity” will be able to open links of type vaadata://test/hello, vaadata://test/hello?test=1 or vaadata://test/hello?a=1&test=coucou.
Sample Link:
Instagram:
instagram://media?id=123456789Spotify:
spotify:track:123456789Facebook:
fb://page?id=123456789
2. Web Links

Definition: Deep links that use the
HTTPandHTTPSschemes..Characteristics: Standard web URLs that redirect to specific app content.
Implementation:
Behavior: On Android 12+, always opens in a web browser. On older versions, may display a disambiguation dialog.
3. Android App Links

Definition: Web links that use the
HTTPandHTTPSschemes and contain theautoVerifyattribute.Implementation:
Benefits:
Secure and Specific: Links to a website domain you own.
Seamless User Experience: Users without the app go to the website.
Android Instant Apps Support: Users can run your app without installing it.
Engage Users from Google Search: Opens specific content in your app from Google search results.
Steps to Add Android App Links
1. Create Deep Links
Add intent filters: Configure your app to use data from intents to direct users to the right content.
Example:
2. Add Verification for Your Deep Links
Configure verification: Request verification of app links and publish a Digital Asset Links JSON file on your website. (e.g https://evil.com/.well-known/assetlinks.json)
Example:
3. Use Android App Links Assistant
Tool in Android Studio: Guides you through the steps required to create Android App Links.
Exploitation of Deep Links
App 1: DeepLin-app
Step 1: Decompile the app using tools like Jadx.
Command:
Step 2: Open AndroidManifest.xml to identify intent filters.
Found Intent Filter:
Exploit via adb:
Exploit via PoC:
In AndroidManifest.xml:
App 2: BeetleBug
Step 1: Decompile the app using tools like Jadx.
Command:
Step 2: Open AndroidManifest.xml to identify intent filters.
Found Intent Filter:
Exploit via adb:
App 3: InsecureShop
Step 1: Decompile the app using tools like Jadx.
Command:
Step 2: Open AndroidManifest.xml to identify intent filters.
Found Intent Filter:
Exploit via adb to load arbitrary URL:
Exploit via adb to read system files:
Code Snippet with Vulnerabilities:
How to Mitigate?
✅ Set android:exported="false" for sensitive activities.
✅ Enforce authentication before executing deep link actions.
✅ Use android:autoVerify="true" for web-based deep links.
✅ Sanitize Input in Deep Links
✅ Disable JavaScript & restrict URL loads in WebView.
Last updated
Was this helpful?
