Mobile WebView abuse
SkillFiles & storageExploit insecure mobile WebViews, JS-bridge abuse, file access, and XSS→native. Load when an app renders web content in a WebView/WKWebView, exposes a JS bridge, or loads attacker-influenced URLs. Signals: addJavascriptInterface, WKScriptMessageHandler, loadUrl, file:// access, deep-link → WebView.
Use Mobile WebView abuse in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Mobile WebView abuse and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Mobile WebView abuse skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by noorqureshi/sploitagent in skills/mobile/mobile-webview/SKILL.md and read by Ahel’s review.
When it applies
The app shows web content in a WebView (Android WebView / iOS WKWebView) and either exposes a
native JS bridge or loads URLs/content an attacker can influence (deep link, param, MITM'd http).
Why it works
WebViews blur the web/native boundary. A JS bridge (addJavascriptInterface /
WKScriptMessageHandler) lets page JavaScript call native code — so XSS or a malicious loaded page
can invoke native functionality. Misconfig (setAllowFileAccess, setJavaScriptEnabled, mixed
content) widens it to local file theft.
Method
- Find the WebView config in
jadx/class-dump:setJavaScriptEnabled(true),addJavascriptInterface(obj,"name")(Android <17 = any method exposed),setAllowFileAccess,setAllowUniversalAccessFromFileURLs, and what URLs it loads. - Reach the WebView with your content: via a deep link that passes a URL param into
loadUrl, a param reflected into the page (XSS), or MITM if it loadshttp://(ATS/cleartext). - Abuse the bridge: from injected JS call the exposed native methods
(
window.name.method(...)) — read files, get device data, trigger actions the bridge exposes. - File/scheme access:
file://loads + universal file access → read app-private files;content://tricks.
Gotchas
addJavascriptInterfaceon old targetSdk exposes reflection → RCE-ish; on modern it's limited to@JavascriptInterfacemethods — enumerate those.- Impact = what the bridge exposes + whether you can get JS to run; prove both.
- iOS
WKWebViewmessage handlers are the equivalent bridge — checkuserContentController.
Verify success
Injected JavaScript invokes native functionality via the bridge (data read, action performed), or local files are exfiltrated through the WebView.
References
OWASP MASTG (platform/WebView); Android WebView security docs; "WebView bridge abuse" write-ups.
Signals
- GitHub stars
- 20
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
mobile-webview- Source
- github.com/noorqureshi/sploitagent
github.com/noorqureshi/sploitagent