Page cover

Deep Links Hacking

Resources

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=123456789

  • Spotify: spotify:track:123456789

  • Facebook: fb://page?id=123456789

  • Definition: Deep links that use the HTTP and HTTPS schemes..

  • 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.

  • Definition: Web links that use the HTTP and HTTPS schemes and contain the autoVerify attribute.

  • 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.

  • Add intent filters: Configure your app to use data from intents to direct users to the right content.

  • Example:

  • 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:

  • Tool in Android Studio: Guides you through the steps required to create Android App 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?