android安全之webview远程代码执行漏洞

【基础知识】

   WebviewAndroid用于浏览网页的组件,它的接口函数addJavascriptInterface可以实现网页JS与本地JAVA的交互,但是没有限制已注册JAVA类的方法调用,导致可以利用反射机制调用未注册的其它任何JAVA类。

  当Android用户访问恶意网页时,会被迫执行系统命令,如安装木马、盗取敏感数据等。

 

【漏洞重现】

构建一个使用Webview组件的程序,

1AndroidManifest.xml添加网络访问权限

android安全之webview远程代码执行漏洞

2activity_my.xml添加Webview控件

android安全之webview远程代码执行漏洞

3MyActivity.java添加关键代码

android安全之webview远程代码执行漏洞

其中webview-exec.html检测代码:

android安全之webview远程代码执行漏洞

APP程序运行结果如下图:

android安全之webview远程代码执行漏洞

可以看到,在没有使用addJavascriptInterface接口函数的情况下,也会存在远程代码执行漏洞,原因是webview组件默认调用”searchBoxJavaBridge_”对象。

 

 

当使用addJavascriptInterface接口函数时,

android安全之webview远程代码执行漏洞

APP程序运行结果如下图:

android安全之webview远程代码执行漏洞

可以看到,即便test类没有具体实现代码,也一样会触发漏洞。

 

【安全建议】

1、使用removeJavascriptInterface("searchBoxJavaBridge_")移除searchBoxJavaBridge_对象。

2、不用addJavascriptInterface接口函数。使用shouldOverrideUrlLoading来限制安全域的方法并不太安全,别忘了中间人攻击。

 

PS建议android用户自行保护个人手机安全,升级系统至4.2+版本。


【扩展阅读】

http://www.cis.syr.edu/~wedu/Research/paper/webview_acsac2011.pdf

http://50.56.33.56/blog/?p=314

http://drops.wooyun.org/papers/548

http://security.tencent.com/index.php/opensource/detail/1

https://labs.mwrinfosecurity.com/advisories/2013/09/24/webview-addjavascriptinterface-remote-code-execution/

http://blog.csdn.net/leehong2005/article/details/11808557

 


关键词: 远程代码执行 , webview

上一篇: Mac OS X “打开xx软件, 你需要一个Java SE 6运行环境”问题解决
下一篇: ios开发中webview加载失败返回 NSURLErrorDomain-999的解决方法。

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):