Deep link / URL scheme / intent abuse

SkillSecurity

Abuse deep links / custom URL schemes / intents for redirect, token theft, and reaching internal screens. Load on custom schemes (myapp://), App Links/Universal Links, exported activities, or "open in app". Signals: intent-filters in the manifest, WebView loading deep-link params, OAuth redirect via a custom scheme.

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Deep link / URL scheme / intent abuse skill

What this skill tells your AI

The instructions your AI receives, as published by noorqureshi/sploitagent in skills/mobile/mobile-deeplink-abuse/SKILL.md and read by ahel’s review.

When it applies

The app registers custom URL schemes or App/Universal Links, or exports activities that accept data. A malicious link (in a web page, another app, or a QR) can then drive the app.

Why it works

Deep-link handlers receive attacker-controlled data and often trust it: they redirect, load it into a WebView, pass it to auth flows, or open privileged screens without re-checking who sent the intent. Custom schemes aren't verified for ownership (unlike App Links), so any app can claim them.

Method

  1. Map handlers: from the manifest, list intent-filter schemes/hosts and exported activities; read jadx for how each parameter is used.
  2. Test open redirect / token theft: if a deep link takes a redirect/return_url or the OAuth callback is a custom scheme, point it at attacker-controlled to steal codes/tokens.
  3. WebView injection: if the deep link's data reaches loadUrl()/evaluateJavascript, try XSS/JS-bridge abuse (android-webview in mobile-android-assessment).
  4. Reach internal screens: adb shell am start -a android.intent.action.VIEW -d "myapp://internal/admin?..." to invoke functionality meant to be gated.
  5. Intent redirection: a component that forwards an attacker-supplied nested intent can be used to launch non-exported components.

Gotchas

  • Custom-scheme OAuth is inherently interceptable — that's the classic account-takeover chain.
  • App Links (verified domains) resist scheme-hijacking; custom schemes don't.
  • Test both from a web page (<a href="myapp://...">) and from adb — behaviour can differ.

Verify success

A crafted link causes token/code disclosure to you, XSS in the app's WebView, or reaches a screen/action that should require prior auth.

References

OWASP MASTG (platform interaction); Android App Links docs; deep-link ATO write-ups.

Signals

GitHub stars
20
Forks
7
Last commit
Sep 2026
Advanced
Item type
skill
Key
mobile-deeplink-abuse
Source
github.com/noorqureshi/sploitagent