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.
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.
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 Mobile WebView abuse skill
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
Related picks
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · wshobson
The pick for JavaScriptowasp-security
Skill · davila7
The pick for Web (OWASP)owasp-web
Skill · nahid-sparktales
The pick for Web (OWASP)pptx
Skill · anthropics
More in Files & storagedocx
Skill · anthropics
More in Files & storage