【技术实现步骤摘要】
一种面向安卓应用程序的Web注入代码执行漏洞检测方法及系统
本专利技术涉及移动端安全领域,特别是一种面向安卓应用程序的Web注入代码执行漏洞检测方法及系统。
技术介绍
随着移动网络的迅速发展,现在,类似浏览器应用程序才具备的加载和显示网页的功能在普通应用程序里边已经十分普遍。安卓提供WebView控件来解释和执行Web代码(HTML代码和JavaScript代码),允许开发者在应用程序里展示各种各样的网页,网页中Web代码与本地代码(Java代码)的交互由安卓Web-Native(网络-本地)跨语言通信机制支持。Web-Native跨语言通信机制能满足用户需求,给应用程序开发带来极大便利,但也造成了跨平台的代码侵入,存在严重的安全问题。针对WebView加载的页面是否安全,安卓系统本身并不做检查,而是由开发者在应用程序的代码实现中做相应的限制,比如采取URL过滤(域名匹配)方式对要加载网页进行过滤,以保证加载的网页的安全。因此,当开发者没有在应用程序的代码实现中对要加载页面进行限制时,就可能给攻击者留有漏洞利 ...
【技术保护点】
1.一种面向安卓应用程序的Web注入代码执行漏洞检测方法,其特征在于,包括以下步骤:/n步骤1:对给定安卓应用程序执行静态程序分析,获取该应用程序中可能导致Web注入代码执行的Web-Native跨语言通信接口信息;/n步骤2:选定一个字符串数据作为Web-Native跨语言通信接口引入的Web数据,基于静态程序分析结果中具体的接口信息和选定的字符串数据,分别针对不同的Web-Native跨语言通信机制,完成Web注入代码样例的构造;/n步骤3:运行应用程序,在该应用程序运行过程中拦截该应用程序与服务器间的通信流量,当截获到来自服务器的响应数据时,修改响应数据,往里面注入构 ...
【技术特征摘要】
1.一种面向安卓应用程序的Web注入代码执行漏洞检测方法,其特征在于,包括以下步骤:
步骤1:对给定安卓应用程序执行静态程序分析,获取该应用程序中可能导致Web注入代码执行的Web-Native跨语言通信接口信息;
步骤2:选定一个字符串数据作为Web-Native跨语言通信接口引入的Web数据,基于静态程序分析结果中具体的接口信息和选定的字符串数据,分别针对不同的Web-Native跨语言通信机制,完成Web注入代码样例的构造;
步骤3:运行应用程序,在该应用程序运行过程中拦截该应用程序与服务器间的通信流量,当截获到来自服务器的响应数据时,修改响应数据,往里面注入构造好的Web注入代码样例;如果在该应用程序运行过程中观察到界面上弹出与选定的字符串数据相应的消息,则判定该应用程序存在Web注入代码执行漏洞,否则说明该应用程序不存在Web注入代码执行漏洞。
2.根据权利要求1所述的面向安卓应用程序的Web注入代码执行漏洞检测方法,其特征在于,所述步骤1中,应用程序中可能导致Web注入代码执行的Web-Native跨语言通信接口包括桥接口通信机制下调用的addJavascriptInterface,事件处理通信机制下调用的onJsAlert、onJsConfirm、onJsPrompt、onConsoleMessage和onReceivedTitle,以及Scheme跳转通信机制下调用的uiOverrideUrlLoading。
3.根据权利要求1所述的面向安卓应用程序的Web注入代码执行漏洞检测方法,其特征在于,所述步骤2中,不同的Web-Native跨语言通信机制包括安卓系统支持的桥接口、事件处理和Scheme跳转这三种Web-Native跨语言通信机制。
4.根据权利要求1所述的面向安卓应用程序的Web注入代码执行漏洞检测方法,其特征在于,所述步骤1具体包括以下步骤:
(i)对给定安卓应用程序包进行解压缩操作,获取包含应用程序源代码的classes.dex文件和包含应用程序基本信息的AndroidManifest.xml文件;
(ii)对步骤(i)获取的classes.dex文件进行反编译操作,将DEX代码转换成中间语言Jimple,得到相应的Jimple文件;并对步骤(i)获取的AndroidManifest.xml文件进行反编译操作,得到源AndroidManifest.xml文件;
(iii)对反编译操作得到的Jimple文件和源AndroidManifest.xml文件进行程序分析,从Jimple文件中获取桥接口即addJavascriptInterface接口生成的Java对象名和对象中的桥方法的方法名和参数,重写的事件处理方法的方法名,以及由uiOverri...
【专利技术属性】
技术研发人员:王伟平,徐蒋婷,宋虹,王建新,
申请(专利权)人:中南大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。