十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MASTG-Hacking-Playground 对照实验:Kotlin 不安全 WebView 与安全 WebView 差在哪?

MASTG-Hacking-Playground 对照实验:Kotlin 不安全 WebView 与安全 WebView 差在哪? MASTG-Hacking-Playground 对照实验Kotlin 不安全 WebView 与安全 WebView 差在哪【免费下载链接】MASTG-Hacking-Playground项目地址: https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground在移动安全领域MASTG-Hacking-Playground是一个专为学习 Android/iOS 安全测试而生的开源靶场项目其中 Kotlin 版应用内置了一对极具教学价值的对照实验不安全 WebView 与安全 WebView。两者加载的是同一个 HTML 文件行为却天差地别——这正是理解 Android WebView 安全配置的绝佳起点。本文将带你逐行对比两段代码看清差距究竟在哪里。为什么要关注 Android WebView 安全WebView 是 App 内嵌浏览器的核心组件但它的每个便利开关都可能成为漏洞入口。常见的 WebView 安全威胁包括XSS 注入恶意网页脚本在本应隔离的环境内执行任意文件读取攻击者借 file:// 协议偷走应用私有文件️JS 桥接漏洞addJavascriptInterface暴露的原生方法被远程调用OWASP MASVS 与 MASTG 均把 WebView 配置列为重点测试项而本项目恰好用两个 Activity 把对与错直接摆在你面前。认识两个对照 Activity源码在哪里Kotlin 版应用把实验做成了可点击对照的菜单入口MenuActivity.kt 中的btn_unsafe_webview与btn_safe_webview点击分别跳转到不安全版本InsecureWebViewActivity.kt安全版本SecureWebViewActivity.kt两者加载的页面是同一个 unsafe_content.html里面故意放了 XSS 弹窗脚本和两个危险调用。逐项对比两段 WebView 配置差在哪配置项 不安全 WebView 安全 WebViewjavaScriptEnabledtrue主动开启 JSfalse保持默认禁用allowFileAccessFromFileURLstrue放开 file:// 文件访问未设置保持默认关闭addJavascriptInterface注入了JS_Interface名为 Android完全不注册 JS 桥页面加载结果弹窗 拿到 JS 桥的秘密字符串页面正常渲染但脚本全部失效对照实验差异会造成什么后果 不安全 WebViewJS 桥 JS 全开的漏洞演示在 InsecureWebViewActivity.kt 中代码主动开启了 JavaScript并注册了 JS_Interface.ktwv.settings.javaScriptEnabled true wv.settings.allowFileAccessFromFileURLs true wv.addJavascriptInterface(jsInterface, Android)配合页面里的脚本alert(XSS POC...); var result window.Android.returnString();效果非常直观页面一打开就弹 XSS 警告框随后通过window.Android.returnString()直接拿到了一段只有 JavaScript 才能获取的秘密字符串。一旦真实应用把敏感逻辑写进 JS 桥远程攻击者就能借 XSS 顺藤摸瓜甚至配合文件访问权限窃取数据。 安全 WebView全部默认关闭的教科书写法再看 SecureWebViewActivity.kt同样是加载unsafe_content.html但wv.settings.javaScriptEnabled falseJS 被禁用、JS 桥未注册页面里的alert和window.Android调用全部失效HTML 只能安静地渲染——攻击脚本有劲使不出。这就是最小权限原则在 WebView 上的最佳示范默认全关按需最小化开启。WebView 安全自查清单三步快速定位风险对照实验之外你可以用下面这份清单快速审计自己的 App✅检查javaScriptEnabled非必要不开启开启则必须校验加载内容来源✅检查addJavascriptInterface4.2 以下系统存在已知远程执行漏洞务必加JavascriptInterface注解并严格收敛方法✅检查allowFileAccessFromFileURLs/setAllowUniversalAccessFromFileURLs两者开启都会放大 file:// 协议风险✅检查WebViewClient/WebChromeClient是否重写shouldOverrideUrlLoading拦截危险 scheme如intent://、tel://✅检查证书校验是否信任所有证书对应本仓库 Java 版中的OMTG_NETW_004_SSL_Pinning系列测试项总结通过 MASTG-Hacking-Playground 的这组 Kotlin 对照实验可以清晰看到不安全 WebView 与安全 WebView 的差距不在代码复杂度而在每一个默认开关上。禁用 JS、不注册多余 JS 桥、收紧文件访问三步即可堵住绝大多数 WebView 攻击面。想亲手体验弹窗与被禁用的差别可以git clone https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground后构建 Kotlin 版应用在菜单里一键切换对比。安全往往就藏在这些少开一个开关的细节里。【免费下载链接】MASTG-Hacking-Playground项目地址: https://gitcode.com/gh_mirrors/ma/MASTG-Hacking-Playground创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表