概括
内容讨论了 Android 应用程序中 WebView 不安全实现所带来的安全风险,特别关注本地文件包含 (LFI) 漏洞和未经授权访问本地文件的可能性。
抽象的
题为“Android 渗透测试中不安全的 Webview 到本地文件包含”的文章深入探讨了 Android 应用程序中配置不当的 WebView 组件所带来的安全挑战。它解释说,WebView 允许在应用程序内显示 Web 内容,但如果不加以保护,则可能导致严重的漏洞。文章强调了将属性设置android:exported为 的风险true,这可能会将 WebView 活动暴露给外部组件,从而可能导致安全漏洞。它提供了易受攻击的代码示例,其中一个示例演示了当 WebView 加载本地文件而没有经过适当的验证或清理时,可能会出现不安全的文件包含漏洞。本文还概述了一个概念验证漏洞,使用命令adb操纵 WebView 加载敏感文件,例如/etc/passwd或应用程序特定数据,如user.xml。摘要强调了保护 WebView 组件以防止安全风险的重要性,并引用了 OWASP 作为参考资料。
观点
-
作者强调了在 Android WebView 实现中采取适当的安全措施以防止 LFI 攻击等漏洞的重要性。
-
有明确的警告,不要在未经仔细考虑的情况下允许导出 WebView 活动,因为这可能导致未经授权的访问。
-
文章建议开发人员经常在 WebView 中启用 JavaScript 以实现功能,但这种做法需要谨慎,因为它可能会引入跨站点脚本(XSS)等额外风险。
-
概念验证演示是 LFI 漏洞如何在现实场景中被利用的实际例子,强调了开发人员需要对此类风险保持警惕。
-
文章最后重申了不安全的 WebView 使用所带来的重大安全风险,并承认 OWASP 可以作为参考,表明信任并遵循行业最佳实践。
Android 中的 WebView 是什么?
Android 中的 WebView 是一个小部件,可让您在应用内显示网页。它本质上是嵌入在应用中的微型浏览器,让您无需用户离开应用并打开单独的浏览器即可显示网页内容。
假设您有一个新闻应用程序,并且您想在此应用程序中显示来自网站的文章而无需打开外部浏览器。
好的,希望你能理解。接下来。
不安全的 Webview
不安全的WebView是指Android应用中的WebView没有采取适当的安全措施,导致其容易受到各种安全风险。
存在漏洞的代码 (1)
如果在 AndroidManifest.xml 文件中将 WebView 活动的 android:exported 属性设置为 true,则意味着该活动可以被应用外部的组件访问。如果处理不当,可能会导致安全漏洞。
< activity
android:name = ".WebViewActivity"
android:exported = "true" >
<!-- WebViewActivity 已导出,允许从其他应用或组件访问 -->
</ activity >
存在漏洞的代码 (2)
以下代码示例演示了 Android 应用中如何出现不安全的文件包含漏洞,特别是在将文件加载到 WebView 时:
String filePath = "file:///etc/passwd"; // Example file path
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.loadUrl(filePath); // Vulnerable to Local File Inclusion (LFI) attack
}
}
-
在此示例中,我们使用 /etc/passwd 作为示例文件路径。请注意,此路径在此处是硬编码的,但在实际情况下,它可能来自用户输入或其他来源。
-
我们使用 webView.getSettings() 获取 WebView 的设置
-
我们通过调用 webSettings.setJavaScriptEnabled(true) 在 WebView 中启用 JavaScript 执行。启用 JavaScript 通常是网页正常运行的必要条件,但如果处理不当,也可能带来安全风险。(例如 XSS)。
-
最后,我们使用 webView.loadUrl(filePath) 将 filePath 指定的文件内容加载到 WebView 中。然而,此行代码容易受到本地文件包含 (LFI) 攻击,因为它直接从文件系统加载文件,而没有经过适当的验证或清理。
让我们重现吧!
-
示例应用程序(com.example.apk)
-
在使用JADX进行静态分析后,我们发现应用程序导出的WebView是RegistrationActivity。
-
在分析 RegistrationActivity 时,我们注意到以下代码片段:
webSettings.setJavaScriptEnabled(true)
webView.loadUrl(filePath);
4.让我们继续利用已发现的漏洞。
5. 打开 cmd 并输入:
adb shell am start -n com.example.apk/.RegistrationActivity --es vaild_url file:/// data / data /com.example.apk/shared_prefs/user.xml
POC(1). 无需漏洞利用的普通App
POC(2). 存在 LFI 漏洞的应用程序
概括
在移动应用程序中使用不安全的 WebView 组件可能会导致多个重大安全风险。WebView 通常用于在应用程序内显示 Web 内容,但如果没有得到妥善保护,则可能会使应用程序面临各种漏洞。
原文始发于微信公众号(Ots安全):Android 渗透测试中不安全的 Webview 到本地文件包含
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论